1.十六进制数值有一个前缀0x或0X,八进制有一个前缀0,加上前缀0b或0B可以表示二进制数。
2.float类型的数值有一个后缀F或f,没有后缀F的浮点数值默认为double类型。
3.NaN不是一个数字。eg.Double.isNaN(x)——>判断x是不是一个数字。
4.最好使用String而不使用char进行数据类型处理。
5.String.join("/",“1”,“2”,“3”)——>打印1/2/3——>第一个参数是作为分割的字符串。
6.Scanner类中的String next()方法会忽略输入的空格,并将带有空格的字符串返回。
7.下图举例三种输出日期方式:
8.luckyNumbers = Arrays.copyOf(luckyNumbers, 2 * luckyNumbers.length)
作用:增加数组的大小。
如果数组元素是数值型,那么多余的元素将被赋值为0;如果数组元素是布尔型,则将是赋值为false。相反,如果长度小于原始数组的长度,则只拷贝最前面的数据元素。
9.System.out.println(Arrays.deepToString(arr));
作用:快速打印二维数组。
10.理解方法调用:每次调用方法都要进行搜索,时间开销相当大。因此,JVM预先为每个类创建了一个方法表,
11.垃圾回收的只是堆内存,栈内存是JVM自动管理的,栈的内存都是随着函数的开始执行和结束自动分配,释放的。
12.byte value = 12;
Byte b1 = new Byte(12)//错误
Byte b2 = new Byte(value);//正确
在java中如果遇到整数常量,一般把数值常量当成int类型来使用
13.自动类型转换 向上转型,强制类型转换 向下转型
14.String a = “012”;
String b = “0123”;
System.out.println(Integer.parseInt(a)+Integer.parseInt(b));//输出135
15.打印一个对象自动调用toString()方法
16.Object 和其子类是同一数据类型
17.final 对变量必须赋一个初始值
18.构造代码块用于初始化对象,每创建一个对象就会被执行一次;静态代码块用于初始化类,随着类的加载而执行,都只执行一次。静态代码块优先于构造代码块的执行。mian方法是静态的方法,他要被执行就要被本类调用,所以本类就要加载,此时静态代码块就要被执行!
19.x = (int)(Math.random() * b + a)//x的值为:随机产生一个[a, a + b)之间的整数。
20.字符串:String a = “”; //初始化a的值为null(引用类型都是)
字符:char b = ‘’; //报错,不初始化值
21.使用native关键字修饰的函数(方法),说明这个方法是原生函数,也就是这个方法使用C++语言实现的并且被编译成了DLL,由Java去调用。
22.成员变量(存在于堆内存中,和类一起创建)和局部变量(存在于栈内存中,当方法执行完成,让出内存,让其他方法来使用内存)
23.外部类不能直接访问静态内部类的实例成员,但可以使用静态内部类的类名作为调用者来访问静态内部类的类成员,也可以使用静态内部类对象作为调用者来访问静态内部类的实例成员。