jvm--内存区域及对象创建

2019-09-10 04:29:56  卢浮宫  阅读量:221  版权声明:本文为站长原创文章,转载请写明出处


一、JDK和JRE

    JDK是最小的java开发环境;jre是标准的运行环境;JDK包含jre

二、Java虚拟机包括:    

    ①程序计数器    ②Java虚拟机栈    ③本地方法栈    ④Java堆    ⑤方法区

    其中①②③是线程私有的;④⑤是线程共享的

    1、程序计数器是一个较小的内存空间,是当前线程执行子界面的行号指示器

    2、栈是线程私有的,生命周期与线程相同,用于存放局部变量,动态链接,方法出口等。

    3、堆是比较打的,用于存放对象实例

    4、方法区用于存放类信息,常量,静态变量等

三、对象的创建

    从虚拟机角度来说

    1、java虚拟机遇到new指令时首先检测这个指令参数能否在常量池中定位到一个类的引用符号以及这个符号

        对应的类是否已经被加载、解析、初始化

    2、接下来为新生对象分配内存,这个在类加载完成后便可确认

    3、内存分配完成后将其分配的内存空间初始化为0值

    4、对创建对象进行必要设置,如:类的元数据信息、对象的哈希码、GC分带年龄等

    

    从程序来说

    1、执行new指令

    2、init初始化

    3、OK

最新评论: