Java语言是强类型语言,所有变量都必须确定具体的数据类型。
原生数据类型 byte(1字节)、short(2字节)、int(4字节)、long(8字节)、 boolean(1字节) 、float(4字节) 、double(8字节) 、char(2字节)
引用类型
范围小的类型转换为范围大的类型,可以直接转换。
范围大的类型转换为范围小的类型,需要强制类型转换。
数值类型和boolean类型之间不能转换,强制类型转换也不可以。
小数的默认类型为double类型。
基本数据类型存储在栈中,引用类型地址存储在栈中,内容存在堆中。
int a=10; a是基本数据类型
Data d=new Date(); d是引用类型
引用 类型只能用=、==、!=,比较的是引用的值。
装箱就是将基本数据类型转换为包装类型。
拆箱就是将包装类型转换为基本类型。
在自动拆箱装箱的过程中,java使用到了常量池。
只有数值范围在byte范围内。在自动装拆箱时才会 使用池操作。
String类是不可变得,对象一旦创建,就不能被修改,可以使用=直接赋值,此时使用常量池,也可以使用new关键字创建,不使用常量池。
StringBuilder是可变的,对象创建后,可以修改。必须使用new关键字。
StringBuffer是不同步,在单线程下使用比StringBuider高效,不许使用new关键字。
使用API中的Arrays类的sort方法可以排序。
数组的长度一旦被确定,不能再修改。
&&和||会放生短路逻辑。