05.Java基础

一、注释、标识符、关键字

注释

书写注释是一个很好的习惯

三种注释 注释快捷键 Ctrl + /

  • 单行注释

    // 单行注释 注释一行文字
    
  • 多行注释

    /* */ 注释一段文字

  • 文档注释

  • //Java 文档注释 /**  */ 可以添加参数
    /**
     * @Description HelloWorld
     * @Author weiruiye
     */
    

平时写代码一定要注意规范

标识符

  • 关键字

    Java 所有组成部分都需要名字。类名、变量名以及方法名都被称为标识符

    所有的标识符都以字母、($)、或者下划线(_) 开头 数字不能开头

    首字母之后可以是任意字母,美元,下划线,或者数字的任何字符组合

    • 不能使用关键字作为变量名或方法名

    标识符是大小写敏感的(区分大小写)

    可以使用中文命名,不建议中文,或者是拼音去命名 很捞

二、数据类型

数据类型

  • 强类型语言

    • 要求变量的使用严格符合规定、所有变量都必须先定义后才能使用
    • 安全性高,速度慢
  • 弱类型语言

    • 变量可以不严格定义类型,很随意、
  • Java的数据分为两大类

    • ** 基本类型**

    • 数值类型:整数类型:byte(1个字节) short(2个字节) int(4个字节) long(8个字节)

    ​ 浮点类型:float(4个字节) double(8个字节)

    ​ 字符类型:char 占两个字节

    • boolean类型:占1位其值只有true 和 false 两个

    • 引用类型

      ​ 类、接口、数组

    //整数 
    int num1 = 100;
    byte num2 = 20;
    short num3 = 30;
    long num4 = 40L;  //long 类型要在数字后面加 L 区分
    
    // 小数,浮点数
    float num5 = 50.1F; //float 类型要在数字后面加 F 区分
    double num6 = 3.1415826535432456524582;
    
    //字符
    char name = 'a';  //字符代表一个字
    //字符串,string 不是关键字、是类
    String namea = "yeweirui";
    
    //布尔值:是非
    boolean flag = true;
    boolean flog = false;
    

什么是字节

  • 位(bit): 是计算机 内部数据 储存的最小单位。 11001100是一个八位二进制数

  • 字节(byte): 是计算机中 数据处理的基本单位,习惯上用大写B来表示

  • 1B (byte,字节): = 8bit(位)

  • 字符: 是指计算机中使用的字母、数字、字和符号

数据类型扩展 及面试题讲解

// 整数拓展  进制  二进制 0b    八进制 0    十进制     十六进制 0x
int i = 10;
int i1 = 010;   //八进制 0
int i2 = 0x10;  // 十六进制 0x      0~9 A~F

System.out.println(i);
System.out.println(i1);
System.out.println(i2);
System.out.println("====================================");

//-------------------//
//浮点数扩展?    银行业务怎么表示? 钱
//BigDecimal    数学工具类
// float    有限 离散 舍入误差 大约 接近但不等于
// double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较

float f = 0.1f; //0.1
double d = 1.0 / 10;
System.out.println(f == d);   // false

float d1 = 12154154546446f;
float d2 = d1 + 1;
System.out.println(d1 == d2); // true


//===================================================
//字符拓展
//===================================================
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int) c1);   //强制转换
System.out.println(c2);
System.out.println((int) c2);   //强制转换

//所有的字符本质 还是数字
//编码    Unicode表:(97 = a 65 = A) 2字节(16位) 0 ~ 65536   Excel 2*16 = 65536
// U0000    UFFFF
char c3 = '\u0061';
System.out.println(c3); //a

//转义字符
// \t 制表符
// \n   换行
//...
System.out.println("Hello\tworld!");

//
System.out.println("========================");
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa == sb);   //false
String sc = "hello";
String sd = "hello";
System.out.println(sc == sd);   //true
//对象    从内存分析

//布尔值扩展
boolean flag = true;
if (flag){}
//less is more !~

三、类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换

    由低到高排列

    byte short char int long float double

  • 运算中,不同类型的数据先转化为同一类型,然后进行运算

  • 强制类型转化

  • 自动类型转换

public class demo02 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte) i;  //强制转换,内存溢出
        double d = i;  //自动转换   128.0

        //强制转换 (类型) 变量名     高--低
        //自动转换  低--高
        /*
        注意点:
        1、不能对布尔值进行转换
        2、不能把对象类型转换为不相干的类型
        3、在把高容量转换到低容量的时候、强制转换
        4、转换的时候可能存在内存溢出,或者精度问题
         */
        System.out.println((int)23.5);  //23
        System.out.println((int)-40.54f);    //-40

        System.out.println("=========================");
        char c = 'a';
        int dd = c + 1;
        System.out.println(c);
        System.out.println((char)dd);

        //操作比较大的数的时候,注意溢出问题
        //JDK7新特性、数字之间是可以用下划线分割
        int money = 10_0000_0000;
        System.out.println(money);
        int years = 20;
        int total = years * money;  //-1474836480、计算的时候就溢出了
        long total1 = money * years;//默认是int、所以在转换前就存在问题了

        long total2 = money * (long)years;//先把一个数转换为long
        System.out.println(total2);

        // l 和 L 大小写 容易混淆,建议大写

    }
}

四、变量、常量

  • 变量是什么:就是可以变化的量~
  • Java是一种强类型语言,每个变量都必须声明其类型
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value] [{,varName[=value]}];
// 数据类型	变量名 = 值;	可以使用逗号隔开来声明多个同类型变量。
  • 注意事项
    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
    • 变量名必须是合法的标识符
    • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

变量作用域

  • 类变量
  • 实例变量
  • 局部变量
public class demo_03 {
    // 类变量  static
    static double salary = 2500;

    //属性:变量
    //实例变量:从属于对象:如果不自行初始化,这个类型的默认值 0 0.0
    //布尔值: 默认是false
    //除了基本类型,其余都是null;
    String name;
    int age;

    //main 方法
    public static void main(String[] args) {
        //局部变量: 必须声明和初始化值
        int i = 10;

        //变量类型  变量名字 = new demo_03();
        demo_03 ex = new demo_03(); //快捷键 new demo_03.var + 回车
        System.out.println(ex.age);
        System.out.println(ex.name);

        // 类变量  static
        System.out.println(salary);
    }

    //其他方法
    public void add() {

    }
}

常量

  • 常量:初始化后不能再改变值!不会变动的值。
  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
final 常量名=;
final double PI=3.14;

 //修饰符 static,不存在先后顺序
    static final double PI = 3.14;
  • 常量一般使用大写字符

变量的命名规范

  • 所有变量、方法、类名: 见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写 lastName
  • 局部变量: 首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

五、运算符

Java 语言支持如下运算符:

  • 算术运算符:+,-,*,/,%,++,–

  • 赋值运算符: =

  • 关系运算符 :> ,< ,>=, <=, ==,!=,instanceof

  • 逻辑运算符: &&,||,!

  • 位运算符&,|,^,~,>>,<<,>>>

  • 条件运算符 ? :

  • 拓展赋值运算符: +=,-=,*=,/=

    a++ 先用a 再加一

    ++a 先加一 后用a

public static void main(String[] args) {
    long a = 164556465465L;
    int b = 132;
    short c = 12;
    byte d = 12;

    System.out.println(getType(a+b+c+d));//long
    System.out.println(getType(b+c+d));//Int
    System.out.println(getType(c+d));//Int  自动升型 默认Int

    //幂运算, 很多运算借助工具来操作~
    double re = Math.pow(2,3);// 2的三次方
    System.out.println(re);
}

逻辑运算符

//短路运算  &&前为加 后面的运行     ||前为真后面不运行
int c = 4;
boolean d = (c<4)&&(c++>5);
System.out.println(c);
System.out.println(d);

/*
位运算
A = 0011 1100
B = 0000 1101
-------------------------------------
A&B 0000 1100       都是1得1 否则都为0
A|B 0011 1101       有1得1 同0为0
A^B 0011 0001       异或,相同为0 不同为1
~B  1111 0010       取反

2*8 = 16    2*2*2*2
<<  左移 *2
>>  右移 /2
位运算操作效率极高
0000 0001   1
0000 0010   2
0000 1000   8
0001 0000   16      2
 */
System.out.println(2<<3); //得16

拓展运算符

int a = 10;
int b = 20;
a+=b;   // a = a + b
a-=b;   // a = a - b
System.out.println(a);

//字符串连接符    +   , String 出现String类型,会将整个字符串转化为String 型
System.out.println("" + a + b); //1020  字符串在开头 字符形式输出
System.out.println(a + b + ""); //30    字符串在末尾  前面的 +号就会运算输出

条件运算符 优先级()

//三元运算符
    // x ? y : z
    //如果 x 为真 结果为 y ,否则为 z      好好学习?早日翻身 : 咸鱼一条
int score = 80;
String type = score<60 ? "不合格" : "合格";
System.out.println(type);   //合格  掌握

六、包机制、JavaDoc

包机制

  • 为了更好地组织类,Java 提供了包机制,用于区别类名的空间命名

  • 包括包的语法格式为:

    • package pkg1[. pkg2[. pkg3…]];
  • 一般利用公司域名倒置作为包名

    • idea 左上方小齿轮,compact middle package 取消勾选
  • 为了能够使用某一个包成员,我们需要在Java 程序中明确导入该包。使用import 语句可以完成此功能

    • import package…

JavaDoc

命令行 javadoc 参数 java 文件

  • Javadoc 命令是用来生成自己API文档的
  • 参数信息
/**
 * @author 作者名
 * @version 1.0
 * @since 1.8
 * @param //参数名
 * @return //返回值
 * @throws //异常抛出情况
 */
public class Doc {

    String name;

    /**
     * @author weiye
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
}

Idea 方式生成Javadoc 方法参考连接~

ide方法生成Doc方法连接

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值