Object类
Object类是JDK默认提供的一个类,所有类默认继承Object类。
Object类是所有类的父类,使用Object可以接收所有类的对象。
1.取得对象信息toString()
使用系统输出输出对象时,默认输出的是一个地址编码。而使用系统输出输出String常量时,输出的是字符串内容。本质原因就在于Object类提供的toString()有没有被类所覆写。
系统输出(print/println)输出对象时,默认调用对象的toString()
*****2对象比较equals() *****
"=="比较的是值是否相等(对于基本数据类型而言,比较的就是存放的数据大小;对于引用类型而言,比较的是存放的地址是否相等)
要进行两个引用类型内容比较,使用equals(),必须覆写equlas()
public boolean equals(Object obj) {
}
3 Object除了是所有类的父类外,Object类还可以接收数组与接口。
Object可以接收所有引用数据类型
二、包装类
包装类就是将基本数据类型封装到类中。
Java中的包装类
数值型包装类(Number类的子类):NumberFormatException
Byte、Double、Short、Long、Float、Integer(int)
对象型包装类(Object类的直接子类)
Boolean、Character(char)
1.装箱与拆箱
装箱:将基本数据类型变为包装类对象,利用每个包装类提供的构造方法实现装箱处理。
拆箱:将包装类中包装的基本数据类型的值取出。
JDK1.5之后提供了自动拆装箱机制,使用包装类对象就和使用基本数据类型一模一样
对于Integer var = ?(自动装箱) ?在-128-127之间的赋值,Integer对象在Integer常量池产生,会复用已有对象。在这个区间外的所有数据在堆上产生,不会复用已有对象。
判断两个包装类对象是否相等,使用equals方法比较
到底选择包装类还是基本类型?
1).强制要求:所有POJO类(自己定义的Java类)的属性均使用包装类
2).推荐:所有局部变量使用基本类型
- 字符串与包装类型数据类型的转换
1)String -> 基本类型
使用包装类提供的parseXXX方法
eg: Integer.parseInt(“123”);
NumberFormatException产生原因:
存在非数字的字符串转为数值类型
eg:Integer.parseInt(“123a”);
以后在进行字符串与数值转换时,首先判断字符串是否由纯数字组成。
2)基本类型->String
I.""+基本类型
II.调用String.valueOf(各种数据类型)