java存储以及java对象创建的流程(详解)
java存储:
1)寄存器:这是最快的存储区,位于处理器的内部。但是寄存器的数量有限,所以寄存器根据需求进行分配。我们不能直接进行操作。
2)堆栈:位于通用RAM中,可以通过堆栈指针从处理器那里获取直接支持。堆栈指针往下移动,则分配新的内存。网上移动,则释放内存。但是
在创建程序的时候必须知道存储在堆栈中的所有项的具体生命周期,以便上下的移动指针。一般存储基本类型和java对象引用。
3)堆:位于通用RAM中,存放所有的java对象,不需要知道具体的生命周期。
4)常量存储:常量值通常直接存放在程序代码内部。
5)非RAM存储:数据完全存活于程序之外,可以不受程序的控制,在程序没有运行时也可以存在。就是将对象转化为可以存放在其他媒介上的事物。如:流对象、持久化对象
对象创建的流程:
1):即使没有显示的调用static,构造器实际上也是静态方法。因此,当首次创建对象的时候或者首次调用静态方法/静态域时,java解释器必须查找类路径,定位class文件。
2):载入class文件,有关静态的方法或者变量都会执行。因此,静态初始化只会在类加载时被初始化一次。
3):使用new创建时,会先在堆上为对象分配足够的存储空间。
4):将这块区域清零,这时,就自动的将对象中的基本成员变量或者引用进行默认的初始化。数字为零,引用为null。
5):执行所有出现于字段定义处的初始化动作。
6):执行构造器。
以上这篇java存储以及java对象创建的流程(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Springboot通用mapper和mybatis-generator代码示例
这篇文章主要介绍了Springboot通用mapper和mybatis-generator代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-12-12java组件SmartUpload和FileUpload实现文件上传功能
这篇文章主要为大家详细介绍了java组件SmartUpload和FileUpload实现文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-11-11spring AOP代理执行@EnableAspectJAutoProxy的exposeProxy属性详解
这篇文章主要为大家介绍了spring AOP代理执行@EnableAspectJAutoProxy的exposeProxy属性详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-09-09
最新评论