java类的生命周期

java虚拟机(jvm:java virtual machine)中 重要的内存区域
1、 方法区:用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域。
2、 堆区(堆内存):存放类的对象,即存放实例。
3、 栈区(栈内存):由一个一个的栈帧组成的先进后出的栈结构,栈帧存放方法运行时产生的局部变量、方法出口等信息。当调用一个方法时,栈中分配一个栈帧区域存放这些数据,当方法调用完成时,栈帧释放。如果方法中调用了其他方法,则继续在栈顶创建新的栈帧。
4、 常量池:是方法区的一部分,主要存放常量以及类中的符号、引用等信息。
5、 本地方法栈
6、 程序计数器

java的生命周期:当编写好java源文件后(.java文件),经过编译会生成一个.class文件,这种文件叫做字节码文件,只有这种字节码文件才能够在java虚拟机中运行,java类的生命周期就是指一个class文件从加载到卸载的全过程。如下图:
java类的生命周期 - zyyvictory2523782 - 圆圆的博客^_^
 

上图中的加载、链接、初始化三个阶段为类加载的过程。

1、加载:
第一步加载,找到需要加载的类并把类的信息加载到jvm的方法区中,然后在堆内存区域实例化一个java.lang.Class对象,作为方法区中该类的信息的入口。
类的加载方式通常有两种,一种是根据类的全路径名找到相应的class文件,然后从class文件中读取内容;另一种是从jar文件中读取。
加载的时机:加载时机取决于具体的jvm实现,一种是当jvm“预期”到一个类将要被使用,就会在使用它之前对这个类进行加载。另一种是当真正用到一个类的时候才对它进行加载。
2、链接:(待续……)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值