python实例化类的存储内存地址_【JVM之内存与垃圾回收篇】对象实例化内存布局与访问定位...

对象实例化内存布局与访问定位

从各自具体的内存分配上来讲

new 的对象放在堆中

对象所属的类型信息是放在方法区的

方法当中的局部变量放在栈空间

这 new 的对象怎么把三块粘合到一起 就是这章的内容了

对象实例化

面试题

美团:

对象在 JVM 中是怎么存储的?

对象头信息里面有哪些东西?

蚂蚁金服:二面

Java 对象头有什么?

从对象创建的方式和步骤开始说

python实例化类的存储内存地址_【JVM之内存与垃圾回收篇】对象实例化内存布局与访问定位..._第1张图片

对象创建方式

new:最常见的方式,单例类中调用 getInstance 的静态类方法,XXXFactory 的静态方法

Class 的 newInstance 方法:反射的方式,在 JDK9 里面被标记为过时的方法,因为只能调用空参构造器,权限必须是 public

Constructor 的 newInstance(XXX):反射的方式,可以调用空参、带参的构造器,权限没有要求

使用 clone():不调用任何的构造器,要求当前类需要实现 Cloneable 接口中的 clone() 方法

使用反序列化:反序列化一般用于 Socket 的网络传输,从文件中、从网络中获取一个对象的二进制流

第三方库 Objenesi

你可能感兴趣的:(python实例化类的存储内存地址_【JVM之内存与垃圾回收篇】对象实例化内存布局与访问定位...)