1.数据类型大小
byte(字节) 1(8位) (bit是比特位,一个字节占8个比特位)
shot(短整型) 2(16位)
int(整型) 4(32位)
long(长整型) 8(64位)
float(浮点型) 4(32位)
double(双精度) 8(64位)
char(字符型) 2(16位)
boolean(布尔型) 1位
字节是系统分配内存的最小单位。boolean是分配一个字节,但是只有一个bit有用,其他无效置0
2.封装类
Integer(int)、Long(long)、Double(double)、Short(short)、
Float(float)、Byte(byte)、Character(char)、Boolean(boolean)
·包装类是不可变的类,在构造对象后不允许更改值;
·包装类是final,不能定义他们的子类。
(1)java.lang.Number转换为基本类型(为Integer、Short、Double、Long、Float、Byte的子类,
子类也有相应的方法)
xxxValue():以xxx的形式返回指定类型的数值。(Integer a = 4 ;4.intValue(),返回int类型。)
(2)包装类的方法
XXXX.parseXXX(String str):将str转换为相应的数值类型。(Integer.parseInt(str))
(3) 自动装箱和拆箱,如下图说明
3.转型
Byte,short,char类型进行运算时会转化为int类型,byte b = 3 ;b = ++b ;是可以的。b = b+1 是不可以的。
4常量池
Java的8种基本类型(Byte, Short, Integer, Long, Character, Boolean, Float, Double),
除Float和Double以外, 其它六种都实现了常量池, 但是它们只在大于等于-128并且小于等于127时才使用常量池
Integer a = new Integer(4) ;
Integer b = new Integer(4) ;
Integer c = 4 ;
Integer d = 4 ;
Integer e = 159 ;
Integer f = 159 ;
System.out.println(a==b);//false
System.out.println(b==c);//false
System.out.println(c==d);//true 使用了常量池
System.out.println(e==f);//false