一、Java基础学习笔记
1.1 面向对象
Java动态绑定机制
- 当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定。
- 当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用。
==方法
==是一个比较运算符
- ==: 既可以判断基本类型,又可以判断引用类型
- == : 如果判断基本类型,判断的是值是否相等。示例:
int i = 10;double d = 10.0; - == : 如果判断引用类型,判断的是地址是否相等,即判断是不是同一个对象。
equals方法
equals:是Object类中的方法,只能判断引用类型 默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等,比如:integer,String
Object 类详解
to String方法基本介绍
默认返回:全类名+@+哈希值的十六进制
子类往往重写to String方法,用于返回对象的属性信息
//getClass().getName() 类的全类名(包名+类名)
//Integer.toHexString(hashCode()) 讲类的hashCode转为16进制字符串
/*public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}*/
重写to String方法,打印对象或拼接对象时,都会自动调用该对象的to String形式。
当直接输出一个对象时,to String方法会被默认的调用。
finalize方法
1.当对象被回收时,系统自动调用该对象的finalize方法。子类可以重写该方法,做一些释放资源的操作【演示】
2.什么时候被回收:当某个对象没有任何引用时,则Jvm就认为这个对象是一个垃圾对象,就会使用垃圾回收机制来销毁该对象,在销毁该对象前,会先调用finalize方法。
3.垃圾回收机制的调用,是由系统来决定(有自己的GC算法),也可以通过System.gc()主动触发垃圾回收机制。