类的生命周期回顾篇

发表于:2011-11-21 09:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xiazdong    来源:51Testing软件测试网采编

  一、JAVA虚拟机和JAVA程序的生命周期

  JAVA虚拟机的生命周期和JAVA程序的生命周期一致,当我们在命令行中敲入java命令运行java程序时,java虚拟机进程启动,程序运行,当程序终止时,则JAVA虚拟机的生命也结束。

  二、类的生命周期

  1、加载:将.class文件的二进制数据放到内存方法区中,并在堆区中创建一个Class对象,这个Class对象封装了方法区的数据结构,用户能通过Class对象访问到方法区中。

  2、连接

  (1)验证:验证.class文件是否是通过JAVA程序编译出来的,因为有可能这个.class文件是黑客特意制造出来的。

  (2)准备:为类中的静态变量分配空间,并初始化为默认值。

  (3)解析:把类的符号引用变为直接引用。

  3.初始化:为静态变量和静态块赋予值。

  JAVA程序对于类的使用方式:

  (1)主动使用。

  (2)被动使用。

  这里注意:

  JAVA虚拟机对于加载和连接的时间节点是很宽松的,没有严格规定,可以提前加载也可以;但是对于初始化,JAVA虚拟机规定当某个类被主动使用时才能初始化。

  我们把3个步骤细讲一下:

  1、类的加载:类是通过类加载器进行加载。

  类加载的来源:

  (1)文件系统中的class文件

  (2)jar包

  (3)网络中下载。

  类加载目的地:内存。

  类加载器分类:

  (1)根类加载器:没有父类,加载java.lang.*。

  (2)扩展类加载器:父类是根类加载器,用于加载jre\lib\ext的jar包。

  (3)系统类加载器:父类是扩展类加载器,用于加载classpath的jar包。Class scl = Class.getSystemClassLoader();

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号