Java基础
数据类型
基本类型
-
byte-- 8位 一个字节
-
char–16位 两个字节
-
short–16位 两个字节
-
int–32位 四个字节
-
float–32位 四个字节
-
long–64位 八个字节
-
double–64位 八个字节
-
boolean (true 或者 false)
整数类型里面包含byte,short,int,long,Java语言的整型常量默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ ,如:
int i1 = 600; //正确
long l1 = 8888888888L; //必须加l或L否则会出错 long也是整形
浮点类型与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台影响。Java 浮点型常量默认为 double 型,如要声明一个常量为 float 型,则需在数字后面加 f 或 F ,如:
double d = 12345.6; //正确
float f = 12.3f; //必须加f否则会出错
boolean 只有两个值:true、false,可以使用 1 bit 来存储,但是具体大小没有明确规定。
用法举例:逻辑控制语句
boolean flag;
flag = true;
//false不进入if语句
if(flag) {
//代码
}
char 型数据用来表示通常意义上的“字符”,char占2字节,字符用单引号括起来的单个字符,例如:
char c1 = 'a';
char c2 ='中';
可以涵盖世界上所有书面语的字符。
char运算
char类型是可以运算的因为char在字符编码表中有对应的数值。在JAVA中,对char类型字符运行时,直接当做对应编码表的整数来对待。char c=‘a’+1; 先将’a’提升为int,计算结果98,对应的字符是b。
包装类型
基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。
Integer x = 2; // 装箱 调用了 Integer.valueOf(2)
int y = x; // 拆箱 调用了 X.intValue()
将基本类型(例如int)
转换为相应包装类(Integer)
的对象称为自动装箱。Java 编译器在基元值为以下值时应用自动装箱:
- 作为参数传递给需要相应包装类对象的方法。
- 分配给相应包装类的变量。
将包装类型(Integer
)的对象转换为其相应的基本类型(int)
值称为取消装箱。当包装类的对象为以下情况时,Java 编译器将应用拆箱:
-
作为参数传递给需要相应基本类型的值的方法。
-
分配给相应基本类型的变量。
基本类型 包装类型
boolean Boolean
byte —— Byte
char —— Character
float —— Float
int —— Integer
long —— Long
short —— Short
double —— Double
缓存池
//new每次都会新建一个对象,地址不同,这样比较的是地址
Integer a = new Integer(123456);
Integer b = new Integer(123456);
//Integer.valueOf会使用缓存池中的对象,多次调用会取得同一个对象的引用,因为相同的值地址是同一个
System.out.println(a == b);
Integer c = Integer.valueOf(123);
Integer d = Integer.valueOf(123);
System.out.println(c == d);
valueOf() 方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容,如果不在缓存池中,在idea里会提示错误。在 Java 8 中,Integer 缓存池的大小默认为 -128~127。