首页 > 编程语言 > 详细

java类加载

时间:2020-09-18 22:58:06      阅读:38      评论:0      收藏:0      [点我收藏+]

资料:

Hotpot Java虚拟机Class对象是在方法区还是堆中  https://my.oschina.net/u/3628059/blog/1557569

Java基础-JVM内存划分  https://juejin.im/post/6844903958977183757

 

注:

  1. class对象在堆中,作为方法区二进制数据结构的访问入口

  2. 类变量在方法区中

    

三、方法区**

method(方法区)又叫静态区,存放所有的①类(class),②静态变量(static变量),③静态方法,④常量和⑤成员方法。

1.又叫静态区,跟堆一样,被所有的线程共享。

2.方法区中存放的都是在整个程序中永远唯一的元素。这也是方法区被所有的线程共享的原因。

  • 存储常量:static final修饰的成员变量

  • 存储静态变量:static修饰的成员变量

    存储方法:静态方法、普通方法

    • 八种基本数据类型(byte、short、int、long、float、double、char、boolean)的静态变量会在方法区开辟空间,并将对应的值存储在方法区
    • 对于引用类型的静态变量如果未用new关键字为引用类型的静态变量分配对象(如:static Object obj;)那么对象的引用obj会存储在方法区中,并为其指定默认值null;若,对于引用类型的静态变量如果用new关键字为引用类型的静态变量分配对象(如:static Person person = new Person();),那么对象的引用person 会存储在方法区中,并且该对象在堆中的地址也会存储在方法区中(注意此时静态变量只存储了对象的堆地址,而对象本身仍在堆内存中)
  • 实例变量存储在堆中

 

 

技术分享图片

 

 

java类加载

原文:https://www.cnblogs.com/GY8023/p/13693789.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!