类的加载机制与存储过程

类的加载机制与存储过程

Java在运行过程中有其自己的加载机制,首先来看看Java内存的存储原理

基本类型数据存储在

​ 例如 byte:‘Byte’、short:‘Short’、int:‘Integer’、float:‘float’、boolean:‘Boolean’、char:‘Char’

引用类型数据存储在(方法区是特殊的堆)

​ 例如 class(类)、interface(接口)、array(数组)


类的加载

平时我们写入的class,在通过new一个对象,或者反射后就会进行类的初始化,运行过程中是由以下顺序执行的

1.类加载

​ 将未加载的class读入,将静态数据转化成方法区里的运行数据,并创建Class对象到堆中

2.类链接

​ 将类的二进制数合并到 JRE 中,为类变量(static)分配内存并设置类变量默认初始值

3.类初始化

​ JVM初始化类,执行构造器的clinit()方法,将代码合并

image-20220603175453204

加载完class后在,'堆内存’中产生了一个Class类型对象

#注:(反射调用的一个类在内存中只有一个class对象) 下面为验证

//已经有了一个class 叫做test

        Class c3 = test.class;//通过反射得到加载后的Class
        System.out.println(c2.hashCode());//2074407503
        System.out.println(c3.hashCode());//2074407503 两个哈希值相同,说明指向统一地址

理解存储机制和类的加载有利于理解一些Java技术的原理

如:

注解与反射:加载完class后在,**‘堆内存’**中产生了一个Class类型对象,通过调用该对象获取类的结构

equals的比较方法:https://blog.csdn.net/weixin_66261421/article/details/125138121(下一个博客应用)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值