分类 报名通知 指南专业 自考课程 准考证.考务 成绩.动态 政策信息

2012年软考软件设计师辅导:Java虚拟机类加载机制

 


软件设计师Java虚拟机类加载机制,个人觉得要弄清楚,可以从如下两个方面去了解:
  1.什么是类加载机制及虚拟机加载类的时机。

  2.加载过程。

  首先看看第一个:虚拟机把描述类的数据从class文件加载到内存,并对class文件的合法性进行验证,引用转换及解析,最终形成可以被虚拟机使用的Java类型,这就是虚拟机的类加载机制。

  由于java的动态扩展特点(就是可以在运行期指定具体类型),所以java的类加载过程都是在程序运行期完成。

  2.虚拟机整个的加载过程可以分为7个阶段:加载-》验证-》准备-》解析-》初始化-》使用-》卸载。

  1.加载,这个过程虚拟机并没有明确规定何时进行,但是规定了只有以下四种情况必须立即进行加载。

  1)遇到new,getstatic,putstatic,invokestatic四条指令的时候,对应的场景:使用new关键字,读取或设置一个类的静态字段(final静态字段除外),以及调用类的静态方法的时候。

  2)使用reflect包的方法进行类的反射调用的时候。

  3)当初始化一个类的时候,如果他的父类没有初始化,则先要触发父类的初始化。(注意这里是父类,如果是父接口的话,是不会触发父接口初始化成员变量的操作的,除非子类有引用父接口的变量)

  4)虚拟机启动时,虚拟机会首先加载用户指定的一个要执行的主类(包含main方法的)

  注:以上称为主动引用。有些情况是不会触发类的加载和初始化的。如:通过子类引用父类的静态字段,不会触发子类初始化;通过数组定义来引用类,不会触发此类的初始化;调用常量不会触发定义常量的类的初始化。

  在确定了什么时候会触发加载操作后,再来看看加载过程主要做些什么:

  1通过类的全限定名来获取定义此类的二进制字节流。这个过程涉及到类加载器的过程,将在后面具体在写。

  2将这个字节流所代表的静态存储结构转化为方法区中的运行时数据结构。方法区的数据结构每个虚拟机实现都可以不一样。

  3在java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的外部访问入口。

  第一步到此就完成了。后面会继续介绍第二阶段验证。

  软件设计师Java虚拟机类加载机制,个人觉得要弄清楚,可以从如下两个方面去了解:

  1.什么是类加载机制及虚拟机加载类的时机。

  2.加载过程。

  首先看看第一个:虚拟机把描述类的数据从class文件加载到内存,并对class文件的合法性进行验证,引用转换及解析,最终形成可以被虚拟机使用的Java类型,这就是虚拟机的类加载机制。

  由于java的动态扩展特点(就是可以在运行期指定具体类型),所以java的类加载过程都是在程序运行期完成。

  2.虚拟机整个的加载过程可以分为7个阶段:加载-》验证-》准备-》解析-》初始化-》使用-》卸载。

  1.加载,这个过程虚拟机并没有明确规定何时进行,但是规定了只有以下四种情况必须立即进行加载。

  1)遇到new,getstatic,putstatic,invokestatic四条指令的时候,对应的场景:使用new关键字,读取或设置一个类的静态字段(final静态字段除外),以及调用类的静态方法的时候。

  2)使用reflect包的方法进行类的反射调用的时候。

  3)当初始化一个类的时候,如果他的父类没有初始化,则先要触发父类的初始化。(注意这里是父类,如果是父接口的话,是不会触发父接口初始化成员变量的操作的,除非子类有引用父接口的变量)

  4)虚拟机启动时,虚拟机会首先加载用户指定的一个要执行的主类(包含main方法的)

  注:以上称为主动引用。有些情况是不会触发类的加载和初始化的。如:通过子类引用父类的静态字段,不会触发子类初始化;通过数组定义来引用类,不会触发此类的初始化;调用常量不会触发定义常量的类的初始化。

  在确定了什么时候会触发加载操作后,再来看看加载过程主要做些什么:

  1通过类的全限定名来获取定义此类的二进制字节流。这个过程涉及到类加载器的过程,将在后面具体在写。

  2将这个字节流所代表的静态存储结构转化为方法区中的运行时数据结构。方法区的数据结构每个虚拟机实现都可以不一样。

  3在java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的外部访问入口。

  第一步到此就完成了。后面会继续介绍第二阶段验证。

  软件设计师Java 虚拟机类加载机制,个人觉得要弄清楚,可以从如下两个方面去了解:

  1.什么是类加载机制及虚拟机加载类的时机。

  2.加载过程。

  首先看看第一个:虚拟机把描述类的数据从class文件加载到内存,并对class文件的合法性进行验证,引用转换及解析,最终形成可以被虚拟机使用的Java 类型,这就是虚拟机的类加载机制。

  由于java的动态扩展特点(就是可以在运行期指定具体类型),所以java的类加载过程都是在程序运行期完成。

  2.虚拟机整个的加载过程可以分为7个阶段:加载-》验证-》准备-》解析-》初始化-》使用-》卸载。

  1.加载,这个过程虚拟机并没有明确规定何时进行,但是规定了只有以下四种情况必须立即进行加载。

  1)遇到new,getstatic,putstatic,invokestatic四条指令的时候,对应的场景:使用new关键字,读取或设置一个类的静态字段(final 静态字段除外),以及调用类的静态方法的时候。

  2)使用reflect包的方法进行类的反射调用的时候。

  3)当初始化一个类的时候,如果他的父类没有初始化,则先要触发父类的初始化。(注意这里是父类,如果是父接口的话,是不会触发父接口初始化成员变量的操作的,除非子类有引用父接口的变量)

  4)虚拟机启动时,虚拟机会首先加载用户指定的一个要执行的主类(包含main方法的)

  注:以上称为主动引用。有些情况是不会触发类的加载和初始化的。如:通过子类引用父类的静态字段,不会触发子类初始化;通过数组定义来引用类,不会触发此类的初始化;调用常量不会触发定义常量的类的初始化。

  在确定了什么时候会触发加载操作后,再来看看加载过程主要做些什么:

  1通过类的全限定名来获取定义此类的二进制字节流。这个过程涉及到类加载器的过程,将在后面具体在写。

  2 将这个字节流所代表的静态存储结构转化为方法区中的运行时数据结构。方法区的数据结构每个虚拟机实现都可以不一样。

  3 在java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的外部访问入口。

  第一步到此就完成了。后面会继续介绍第二阶段验证。

 


   >>学课在线网课试听.报名        >>学课在线智能题库.模拟做题       >>直播课程       >>录播课程

课程名称
课程免费试听
课程名称
课程免费试听
课程名称
课程免费试听
初级会计师

一级建造师

执业药师

中级会计师

二级建造师

护士资格证

注册会计师

一级造价工程师

健康管理师

经济师考试

监理工程师

考研辅导课

银行从业

安全工程师

自考课程

基金从业

一级消防工程师

心理咨询师

企业人力资源管理师

法律职业资格考试

公共营养师

社会工作者

消防设施操作员

保育员

教师资格证

成人高考

育婴师

公务员培训

文职培训

英语四六级

计算机软考
养老护理员
税务师培训

房产经纪人
咨询工程师

其它课程>>



重要提醒!!内容中联系方式并非本站联系方式,报名咨询的学员请与下面最新联系方式联系我们咨询报名-以免损失!
>>长期招聘兼职招生代理人员,项目合作,团报优惠咨询,有意者请联系我们 >>咨询:13312524700(可加微信)。

昆明学历中心:◆咨询电话:0871-65385921、13312528471 赖老师、钱老师(微信报名:17787865775)点击这里给我发消息


云南地州中心:◆咨询电话:0871-65385921、17787865775 冯老师、 王老师(微信报名:17787865775)点击这里给我发消息


总部报名地址: ◆昆明市-五华区教场东路莲花财富中心10楼;网课试听:ke.xuekaocn.cn   点击这里立即咨询我们



地州分校:   大理分校   丽江分校   迪庆分校   怒江分校   红河分校   临沧分校   玉溪分校   文山分校   保山分校   德宏分校   昭通分校   普洱分校   版纳分校 【各地州学员请加老师微信咨询报名,电话(微信):133-1252-4700】;2021年云南省成人高考>>立即报名



职业技能考证:心理咨询师、健康管理师、茶艺师等更多>◆咨询电话:133 1252 4700(微信)点击这里咨询我们  

公考培训咨询:◆国考云南省考公务员/事业单位面授培训,咨询电话:133 1252 4700 (微信)点击这里立即咨询我们






温馨提示:因考试政策、内容不断变化与调整,学课在线网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

免责声明:以上内容仅代表原创者观点,其内容未经本站证实,学课在线网对以上内容的真实性、完整性不作任何保证或承诺,转载目的在于传递更多信息,由此产生的后果与学课在线网无关;如以上转载内容不慎侵犯了您的权益,请联系我们QQ:1536696595,我们将会及时处理。




网友评论