Object的学习
2020-08-17 17:23
1001 查看
Object是long包的类,是所以类的根类,包括数组
- 在这个类上的所以方法,会被继承到所以的类和数组中
- 设计者意图:只要是类就应该具有的方法都会无条件定义在Object中,所以这些方法的重要性和常用性一定是共用性最强的
- Object类中每个方法的使用:
- getClass()——Java进阶阶段“反射”
- hashCode()——Java集合框架
- equals()——比较两个物理位置不同的同类型对象是否内容相同
-
由于Object是根类,所以无法确认每个自定义子类的比较规则,只能采用“==”方法,因此equals需要每个自定义的子类进行重写
-
误区:
-
1、不是每个属性相等,equals方法就会返回true。equals相等为“业务相等”
-
2、遗留问题——equals方法的重写,往往需要配合hashCode方法的重写
- clone()——Java进阶“原型模式”
- toString()——返回对象的字符串描述
-
Object中,返回的是形如:“类的限定名@16进制哈希值”
-
“类的限定名”说明这个对象属于哪个数据类型的
-
“16进制哈希值”可以看作对象的引用,即对象所在的位置
-
在自定义类型中,为了看到更详细的自定义对象描述,toString需要每个自定义的子类进行重写
- finalize()——销毁对象(Java在Object中写好销毁对象的实现,放在finalize中,GC会调用这个算法处理没有引用指向的对象)
-
知道其存在和作用即可,往往在实现过程中不需要重写,也不需要调用,如果要重写,要加上super.finalize();的代码
-
调用交给GC去自动调用
- final:除了定义常量外,还是类和方法的“最终的,不能够变化的”
-
1、变量不能修改 2、类不可被继承(终态类) 3、方法不能被改变(不包括构造方法)
-
final int max = 100;
-
public final void test(){ }
-
public final class Student{ }
- wait()——Java进阶“多线程”
- notify()——Java进阶“多线程”
- notifyAll()——Java进阶“多线程”
相关文章推荐
- JAVA 学习模块十六: Object
- Object-C学习 属性、点语法练习
- JSON学习(四):JsonArray和JsonObject遍历方法
- Java学习之道:JSONObject
- Object-C语法学习笔记(一)——数据类型
- Object-C 学习笔记(十二)---Foundation之NSNumer
- Object-C 学习笔记(十四)---Foundation之NSMutableString
- Object-c基础编程学习笔记-C的扩展
- yate学习--yateclass.h--class YATE_API GenObject
- Object-c 学习入门教程(经典推荐)
- java学习笔记第十一天:1_Object
- Learn the object-c on MAC(中译本: Object-C 基础教程 ) 学习笔记
- Sharepoint学习笔记 –架构系列—Sharepoint的服务器端对象模型(Server Object Model) 2.内容层次结构
- JavaScript中的Object对象学习教程
- OBject-C学习1
- Object-c基础编程学习笔记-内存管理
- 黑马程序员_学习笔记:5) 面向对象3:多态、Object、内部类、匿名内部类
- Mybatis源码学习笔记(六)配置简介之objectFactory、plugins、mappers
- Object.assign 学习
- Object-C学习随笔