java基础-Object类

2024-03-11

方法

// 从当前对象中复制出一个新的对象
clone()
// gc回收对象时调用
// 可在释放对象时处理一些事情
// 可能导致内部循环引用,导致此对象不能被回收
finalize()
// 与==的区别
// ==(运算符)使用范围:基本数据类型和引用数据类型
// 基本数据类型判断数据值是否相等
// equals()使用范围:引用数据类型
// 具体使用:默认比较的是内存地址,一般子类重写以比较具体的值
equals()

// object类的方法中返回的是类名+类内存地址
toString()
		

创建对象的步骤

判断对象对应的类是否加载、链接、初始化
为对象分配内存
	如果内存规整
		指针碰撞
	如果内存不规整
		虚拟机需要维护一个列表
		空闲列表分配
处理并发安全问题
	采用CAS失败重试、区域加锁保证更新的原子性
	每个线程预先分配一块TLAB
		通过-XX:+/-UserTLAB参数来设定
初始化分配到的空间
	所有属性设置默认值,保证对象实例字段在不赋值时可以直接使用
设置对象的对象头
执行init方法进行初始化


{/if}