Java学习笔记十六(包装类)
包装类:
1、 八大基本数据类型 : byte short int long char double float boolean
对应的包装类: Byte Short Integer Long Character Double Float Blooean
2、 在JDK1.5之后,编译器会自动进行装箱和拆箱(即基本数据类型和包装类之间的转换)
(1) 装箱: 基本数据类型 --> 包装类 (栈内存 --> 堆内存 )
(2) 拆箱: 包装类 --> 基本数据类型 (堆内存 --> 栈内存 )
装箱: 拆箱:
3、 特点:
(1)所有的包装类都是final的,因此没有子类。
(2) 所有的包装类一旦创建,数据类型是不可变的。
(3)包装类对象都是用构造方法来创建的
Integer a = new Integer(4);
(4)包装类的层次结构:
Object --> Number --> Byte/Short/Intger/Long/Float
Character
Boolean
(5) 包装类都方法重写了 Object.toString()
4、 字符串和基本类型之间的转换:
(1)字符串转换为基本类型:
int num1 = new Integer("10");
int num2 = Integer.parseInt("123");
(2) 基本数据类型转换为字符串:
String s1 = ""+23;
String s2 = Integer.toString(100);
String s3 = String.valueOf(66);
5、 整数包装类的装箱过程:
Integer a= 5;
在这个过程中,如果给a赋值的大小在-128到+127之间时,先去整数常量池中查找是否有值相等的对象,再对5装箱,如果有则不再创建新的常量池,没有则创建存入常量池,如果给a赋值的大小不在这个范围内,则值存在堆里。
6、 Object类的equals和toString函数:
boolean equals(Object obj):
return this==obj;
比较的是地址信息
String toString():返回了对象的一串字符:
类全名@Hash值
通常类会重写equals和toString函数:
equals用来比较两个对象的内容
1、先判断穿进来的参数是不是this
2、判断参数是不是null
3、判断参数是不是同一类型
toString用来描述对象的内容