目录
11.1 Object类
java中所有类的父类 如果一个类没有指定父类,默认继承Object 类
-
Object o = 任何对象 不包括8种基本类型
-
Object类中定义的方法是所有java对象都具有的方法(public 或是protected)
11.2Object类中的方法
方法名 | 作用 | 用法 |
---|---|---|
getClass() | 获得对象的实际类型 | o1.getClass()==o2.getClass() 判断o1和o2类型是否相同 |
finalize() | 对象被垃圾回收时调用 | 对象的全生命周期里最后一个方法就是finalize() ,没有什么用 |
toString() | 返回对象的字符串形式 | System.out.println(o)打印o就是打印o.toString() |
equals | 判断两个内容是否相同 | o1.equals(o2)判断o1和o2内容是否相同 |
getClass() 获得对象的实际类型
instanceof 判断对象是不是某一类型
垃圾自动收集:由JVM中的垃圾收集器自动回收垃圾对象,释放对应的堆空间
问:什么对象会被认为是垃圾对象?
零应用算法 如果一个对象没有任何引用指向它,则这个对象就是垃圾对象
问:垃圾对象何时被回收?
不得不回收时,内存耗尽,无法创建新对象时
public String toString(){}
返回对象的字符串形式
打印一个对象,打印出来的就是 对象toStrinh()方法的返回值String
可以在子类中覆盖toString()方法,实现特殊的对象字符串形式
public boolean eequals(Object o)
引用之间用==判断,判断的是地址是否相同
s1==s2 为true 说明s1和s2指向同一个对象
引用之间用equals判断,判断的是内容是否相同
s1.equals(s2)为true,说明s1和s2内容相同
Object类中的equals方法,依然比较两个对象的地址
如果需要比较内容,需要在子类中覆盖
//this 和 o 对象比较内容
public boolean equals(Object o){
//判断this和o是不是同一个对象
if(this==o)return true;
//判断o是不是null
if (o==null)return false;
//判断this 和 o 是否属于同一个类
if(this.getClass()!=o.getClass())return false;
//对o做强制类型转换,变为Employee类型
Employee e=(Employee)o;
//逐个比较属性 基本类型属性用==比,对象类型属性用equals比
if(this.age == e.age &&this.name.equals(e.name))return true;
else return false;
11.2 包装类
为8种基本数据类型 各自提供一个类
所有的基本类型数据,就拥有了对应的对象形式
Obbject o=任何数据
基本类型 | 对应的包装类 |
---|---|
int | Integer |
char | Character |
byte | Byte |
boolean | Boolean |
double | Doouble |
short | Short |
long | Long |
float | Float |
-
基本类型和包装类之间的转换
-
int---->Integer
Integer.valueOf(i);获得一个Integer对象
Integer类内部会预先创建-128-127 256个对象,如果在这个区间内,不会产生新对象
-
Integer---->int
a.intValue();
-
jdk5 自动封箱,自动解箱 由编译器自动处理基本类型和包装类之间的转换
-
-
基本类型和Sring之间的转换
-
int------>String
int i =12; String s = i+ ""; 或者 String s =String.value.valueof(i);
-
String------>int()
String s="1234"; int i = Integer.parsenInt(s);
-
-
包装类和String之间的转换
-
Integer----->String
Integer a =1234; String s =a.toString();
-
String---->Integer
String s="1234";Integer a =Integer.valueof(s);
-