码迷,mamicode.com
首页 > 编程语言 > 详细

java-类生命周期(一)

时间:2014-05-15 13:10:47      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:java   内存管理      

了解java底层知识,有利于提升对java的理解,提升程序性能,减少内存消耗。

详细介绍类生命周期前,简单了解下JVM虚拟机

java虚拟机:简称JVM(Java Virtual Machine),软件模拟硬件,包含处理器、寄存器、堆栈及指令系统,内存区域介绍见java-内存管理

万物皆有生命周期,类的生命如下图所示

bubuko.com,布布扣


(一)加载

java文件编译成.class文件,JVM将.class文件中二进制数据读入内存,放于方法区,在堆中创建Class对象


(二)连接

1.验证:验证该类是否合法,防止恶意编写的.class文件,检测文件是否符合字节码格式

2.准备:为类的静态变量分配内存,并设置初始值

3.解析:将接口名、字段名、方法名等解析成内存地址,方便调用


(三)初始化

类引用分成直接引用和间接引用,直接引用才会触发类初始化。

直接引用的情况:

1.new出实例对象、访问或设置静态变量、调用类静态方法

2.反射(如Class.forName(“com.peter.demo.Test”))

3.初始化子类,触发父类初始化

4.启动类入口(如Main方法)

其他情况皆是间接引用,如引用类常量(static final)


(四)卸载

类的卸载大于实例对象的生命周期

java gc采用根搜索算法进行内存管理,当对象为unreachable的时候,实例对象将被清除;而类卸载还需要满足,加载该类的ClassLoader已被回收、Class对象没任何引用也无反射,才会被卸载。


(五)学习概要

一个完整的java类生命周期经历加载、连接、初始化、使用、卸载的过程,后续用一个例子简单分析类的生命周期。




java-类生命周期(一),布布扣,bubuko.com

java-类生命周期(一)

标签:java   内存管理      

原文地址:http://blog.csdn.net/wangpeifeng669/article/details/25836457

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!