object
1:是所有类的总父类,只要是类就医i的那个直接或间接继承自Object;
2:内部存放着所有对象都需要拥有的方法
3:可以根据需求对其中的部分方法提供重写
常用方法
1:Class类对象 getclass();用来获取当前引用的实际对象类型
2:Int hashCode():获取当前对象的哈希码值
重写原因:该方法默认关注对象地址,但是实际开发过程中,我们某些情况下需要关注的是对象内容,内容相同则哈希码值相同,所以需要重写
重写规则:
整形:直接相加!!!long类型需要类型强转为int
浮点型:强转int后相加
引用类型:调用hashCode()方法相加
类库中的引用类型(String、包装类等):直接调用
自定义的引用类型:先重写该类的hashChod再调用
3:boolean equals(Object o):判断当前对象与参数对象是否相同
重新原因:该方法默认比较地址,但是实际开发中,在某些需求下需要比较对象内容,所以需要重写
重写规则:
public boolean equals(object o){//Object o=new Student();
//自反性:自己与自己比,一定相同
if(this==o){
return true;
}
//非空判断+类型比较:与null值比或者实际对象类型不一致,一定不同
if(o==null||this.getClass()!=o.getClass()){
return false;
}
//类型强转:把参数对象类型强转为当前类型,方便比较属性值
当前类名 引用名 = (当前类名)o;
//进行属性值比较
//用this对象和引用名的属性进行比较
//基本类型==直接比较,引用类型调用equals方法进行比较
//类库中的引用类型:直接调用
//自定义的引用类型,重写对应类的equals,然后调用
return...;
}
4:String toString();获取对象的详细内容
特点:在直接查看引用名时可以默认调用
重写原因:该方法默认获取对象地址,但是实际开发中,我们由可能需要查看对象属性信息,所以需要重写
重写规则:按照需求拼接字符串返回即可
5:void finalize():用于被虚拟机调用进行垃圾对象回收
垃圾回收机制:当内存满到不足以支撑创建新对象的创建时,虚拟极会自动调用垃圾对象的finalize方法对其进行回收销毁,从而释放空间
垃圾对象的判断标准:没有任何引用指向的对象(零引入机制)
手动垃圾回收:借助垃圾回收器(GC),通过System.gc()实现手动垃圾回收
包装类
作用:将八大基本类型包装为引用类型,时期保留数值操作简单的基础上可以处理null的值
byte | short | int | long | float | double | char | boolean |
Byte | Short | Integer | Long | Float | Double | Chatacter | Boolean |
包装类型和基础类型
基本数据类型转包装类型
1:利用构造
包装类名 引用名=new 包装类名(基本类型);
2:利用valueOf方法
包装类名 引用名=包装类名.valueOf(基本类型)
包装类转基本类型
利用xxxValue方法
基本类型 变量名=包装类对象.xxxValue();!!!注:xxx表示对应基本类型名
拆箱封箱
JDK5.0之后,为了提高包装类型与基本类型之间转换的效率,提供了自动封箱和自动拆箱操作,使其可以直接相互赋值自动完成转换
封箱:基本类型转包装类
拆箱:包装类转基本类型
基本类型与String
基本类型转String
1:拼接双引号
String 引用名=基本类型+"";
String 引用名=""+基本类型;
2:利用valueOf方法
string 引用名=String .valueOf(基本类型);
String 转基本类型
利用parse方法
基本类型 变量名=对应包装类型.parseXxx(String类型);
注:Xxx对应基本类型,首字母大写
String类型转向其他类型时,字符串数据必须为对方能够接收的数据,否则会爆出数据类型转换异常
包装类型与String
包装类转String
1:拼接双引号:
String 引用名=包装类型+“”;
String 引用名=“”+包装类型;
2:利用toString
String 引用名 = 包装类对象.tostring();
String转包类型
与基基础类型转包的两种方式一致
整数缓冲区官方认定,-128至127是最常用的256个数字,为了避免包装类型数字重复使用带来的内存压力,在方法区中设立了整数缓冲区,缓冲区中存放该256个数字,当包装类型使用的数字在此范围内时,会直接引用缓冲区地址
==比较引用类型时,对地址优先