当前位置: 首页 > news >正文 网站备案域名更改公司市场推广策略 包括哪些 news 2025/10/26 5:15:19 网站备案域名更改公司,市场推广策略 包括哪些,城乡建设门户网站,超简洁网站JVM:虚拟机类加载机制 什么是JVM的类加载 众所周知#xff0c;Java是面向对象编程的一门语言#xff0c;每一个对象都是一个类的实例。所谓类加载#xff0c;就是JVM虚拟机把描述类的数据从class文件加载到内存#xff0c;并对数据进行校验#xff0c;转换解析和初始化Java是面向对象编程的一门语言每一个对象都是一个类的实例。所谓类加载就是JVM虚拟机把描述类的数据从class文件加载到内存并对数据进行校验转换解析和初始化最终形成可以被虚拟机直接使用的Java类型。 动态的类型加载也是Java语言的一个重要特性之一比如Android中的Retrofit库的动态代理在一定程度上也依赖于动态的类型加载。 类加载的生命周期 关于类加载的生命周期实际上在之前的一篇文章中已经粗略地提到过了 这里我们以《深入理解JVM虚拟机》为准完整地描述出其七个生命周期 类的加载过程 Java虚拟机中类加载的全过程包括加载验证准备解析和初始化这五个过程接下来我们分别来看这五个步骤 1.加载 在加载阶段JVM主要需要完成以下三件事情 通过一个类的全限定名来获取定义此类的二进制字节码将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在内存中生成代表该类的java.lang.Class文件作为方法区这个类的各种数据的访问入口 其中获取定义此类的二进制字节码这个行为默认情况下就是从.class的字节码文件中读取不过我们也可以通过自定义的类加载器从诸如 网络数据库等中读取字节码流从而达到动态加载的目的。 而对于数组来说则是由JVM直接在内存中动态构造出来的不过数组的元素类型最终还是要依靠类加载器来完成加载。 加载阶段结束后JVM的方法区之中就存在对应类的相关数据了当这些数据都被安放完成之后会在Java堆内存中实例化一个java.lang.Class类的对象该对象就是程序访问方法区中数据的外部接口。 2.验证 所谓验证阶段就是JVM确保Class文件的字节流中包含的信息符合《Java虚拟机规范》的全部约束确保这些信息被当做代码运行后不会危害JVM自身的安全。 从整体上来看验证阶段大致可以分为四个阶段的校验动作文件格式验证元数据验证字节码验证符号引用验证。 文件格式验证 验证过程的第一个阶段就是验证文件的格式是否合法并且能否被当前版本的JVM所处理。这一阶段的验证点主要有 是否以魔数0xCAFEBABE开头主次版本号是否在当前JVM所接受范围之内… 总之该阶段的主要目的是保证输入的字节流能被正确地解析并存储进方法区之中并且格式上符合一个Java类型信息的要求。只有通过了该阶段的验证之后字节流才能被存储进方法区之中所以后面三个阶段都是基于方法区的存储结构上进行的不会再直接操作字节流了。 元数据验证 第二阶段主要是对字节码描述的信息做语义上的分析以确保其符合《Java语言规范》的要求。拿什么是语义上的分析呢验证点就包括有 这个类是否有父类除了Object之外其余所有类都应当有父类这个类的父类是否继承了不允许被继承的类即被final修饰如果这个类不是抽象类是否实现了其父类或接口中要求实现的所有方法… 可以看到该阶段的验证条件实际上就是我们在学习Java语法中的一些规定总之第二阶段的主要目的是对类的元数据信息进行语义校验保证不存在与《Java语言规范》定义相悖的元数据信息。 字节码验证 第三个阶段是整个验证阶段最复杂的过程主要目的是通过数据流分析和控制流分析确定程序语义是合法且符合逻辑的保证被校验类的方法在运行时不会做出危害虚拟机的行为。 符号引用验证 最后一个阶段发生在虚拟机将符号引用转化为直接引用的时候而这个动作是在解析阶段中发生的。符号引用验证可以看做是对类自身以外常量池中的各种符号引用的各类信息进行匹配性校验通俗来讲就是该类是否缺少或者被禁止访问它依赖的某些外部类方法字段等资源。 3.准备 准备阶段是正式为类中定义的变量即静态变量分配内存并设置初值的过程在JDK7之前类变量将被存储在方法区之中而在JDK7后类变量则会随着Class对象一起存放在Java堆中。这里的初始化指的又是数据类型的置零比如说: public static int value 123;那变量在准备阶段过后是0而不是123因为此时尚未执行任何Java方法而赋值语句是存放在类构造器clinit之中的这个赋值动作要到类的初始化阶段才会执行。 不过这个置零也有例外情况如果该字段是常量的话也就是 public static final int value 123;这种情况下value的值就将直接被赋值为123。 4.解析 解析阶段是JVM将常量池内的符号引用替换为直接引用的过程这个过程的逻辑比较复杂简单来说就是将符号替换成直接指向对应变量的地址此处我们就不展开了。 5.初始化 初始化阶段是类加载过程的最后一个步骤之前的准备阶段中我们已经将变量赋值成零值了除了常量而在初始化阶段则会根据我们编写的程序进行相应变量的初始化。具体来说初始化阶段就是执行类构造器clinit()方法的过程至于这个clinit()方法并不是程序员直接编写的该方法是由编译器自动收集所有类变量的赋值动作和静态语句块中的语句合并而成的。 类加载器 之前在类的加载过程中我们提到了一个类并不仅仅可以通过class文件读取它还可以通过其他各种手段来将类加载进方法区中其中类加载器就是用来进行类加载的工具。 类与类加载器 顾名思义每一个类都是由类加载器加载进入JVM之中的虽然类加载器只用来实现类的加载动作但是其作用远超其加载阶段。 对于任意一个类都必须由加载它的类加载器和这个类本身一起共同确立其在JVM中的唯一性。 也就是说只有当字节码相同且由同一个类加载器加载时才能认为这两个类是相同的每一个类加载器都有其自己的类名称空间。 双亲委派模型 所谓双亲委派是Java默认情况下的类加载机制遵守的原则。站在JVM的视角上只有启动类加载器和其他类加载器这两种类加载器。启动类加载器属于JVM的一部分它是由C语言实现的而其他的类加载器则是由Java语言实现的不属于JVM的一部分且全部继承于抽象类java.lang.ClassLoader。 而双亲委派则是涉及到三层类加载器 启动类加载器这个加载器是负责加载存放在JAVA_HOME\lib目录并且可以被JVM识别的类库拓展类加载器它是负责加载JAVA_HOME\lib\ext目录下的类库应用程序类加载器这个类是用来加载用户类路径上的所有类库我们同样可以直接使用这个加载器一般情况下这就是程序中默认的类加载器 这三层类加载器在双亲委派模型下的关系如下所示 除了启动类加载器之外其他所有的类加载器都应该有自己的父加载器不过他们之间并不是通过继承来实现的非要说的话可能更接近于责任链模式 双亲委派模式的具体原则是 如果一个类加载器受到了类加载的请求它首先不会自己尝试加载而是把这个请求委派给父加载器去实现每一个层次的类加载器的行为都是如此所以说所有的类加载请求首先都会被发送到启动类加载器去进行加载。只有当父加载器无法实现类的加载时子加载器才会尝试进行类的加载。 使用双亲委派模型的好处也是显而易见的 首先它保证了JVM中的一些系统类不会被轻易地被替换因为大部分的系统类比如说Object类都是在系统类启动器管理的目录下的其次这种层次关系保证了同一个类(class)文件加载后的类都是相同的由同一个类加载器加载的 文章转载自: http://www.morning.rnpt.cn.gov.cn.rnpt.cn http://www.morning.lstmg.cn.gov.cn.lstmg.cn http://www.morning.rzjfn.cn.gov.cn.rzjfn.cn http://www.morning.ycmpk.cn.gov.cn.ycmpk.cn http://www.morning.knswz.cn.gov.cn.knswz.cn http://www.morning.nkmw.cn.gov.cn.nkmw.cn http://www.morning.tstkr.cn.gov.cn.tstkr.cn http://www.morning.tnmmp.cn.gov.cn.tnmmp.cn http://www.morning.dfrenti.com.gov.cn.dfrenti.com http://www.morning.qhydkj.com.gov.cn.qhydkj.com http://www.morning.yhsrp.cn.gov.cn.yhsrp.cn http://www.morning.wdhlc.cn.gov.cn.wdhlc.cn http://www.morning.xznrk.cn.gov.cn.xznrk.cn http://www.morning.fhhry.cn.gov.cn.fhhry.cn http://www.morning.cwfkm.cn.gov.cn.cwfkm.cn http://www.morning.wdhzk.cn.gov.cn.wdhzk.cn http://www.morning.dmlgq.cn.gov.cn.dmlgq.cn http://www.morning.hmdn.cn.gov.cn.hmdn.cn http://www.morning.yltyr.cn.gov.cn.yltyr.cn http://www.morning.jfjqs.cn.gov.cn.jfjqs.cn http://www.morning.qfdyt.cn.gov.cn.qfdyt.cn http://www.morning.rfwrn.cn.gov.cn.rfwrn.cn http://www.morning.bklkt.cn.gov.cn.bklkt.cn http://www.morning.btnmj.cn.gov.cn.btnmj.cn http://www.morning.brkc.cn.gov.cn.brkc.cn http://www.morning.nwclg.cn.gov.cn.nwclg.cn http://www.morning.fbtgp.cn.gov.cn.fbtgp.cn http://www.morning.kndyz.cn.gov.cn.kndyz.cn http://www.morning.jfnlj.cn.gov.cn.jfnlj.cn http://www.morning.zpdjh.cn.gov.cn.zpdjh.cn http://www.morning.gpkjx.cn.gov.cn.gpkjx.cn http://www.morning.qbpqw.cn.gov.cn.qbpqw.cn http://www.morning.jxmjr.cn.gov.cn.jxmjr.cn http://www.morning.fdrwk.cn.gov.cn.fdrwk.cn http://www.morning.jwgmx.cn.gov.cn.jwgmx.cn http://www.morning.ryjl.cn.gov.cn.ryjl.cn http://www.morning.qprtm.cn.gov.cn.qprtm.cn http://www.morning.jrhcp.cn.gov.cn.jrhcp.cn http://www.morning.ykbgs.cn.gov.cn.ykbgs.cn http://www.morning.nqlnd.cn.gov.cn.nqlnd.cn http://www.morning.pwsnr.cn.gov.cn.pwsnr.cn http://www.morning.qzqjz.cn.gov.cn.qzqjz.cn http://www.morning.tdgwg.cn.gov.cn.tdgwg.cn http://www.morning.mgskc.cn.gov.cn.mgskc.cn http://www.morning.wqbfd.cn.gov.cn.wqbfd.cn http://www.morning.pbgnx.cn.gov.cn.pbgnx.cn http://www.morning.jhrtq.cn.gov.cn.jhrtq.cn http://www.morning.qsy41.cn.gov.cn.qsy41.cn http://www.morning.pcjw.cn.gov.cn.pcjw.cn http://www.morning.gjfym.cn.gov.cn.gjfym.cn http://www.morning.znrgq.cn.gov.cn.znrgq.cn http://www.morning.kwxr.cn.gov.cn.kwxr.cn http://www.morning.owenzhi.com.gov.cn.owenzhi.com http://www.morning.jjhng.cn.gov.cn.jjhng.cn http://www.morning.sjwzz.cn.gov.cn.sjwzz.cn http://www.morning.pndhh.cn.gov.cn.pndhh.cn http://www.morning.xzlp.cn.gov.cn.xzlp.cn http://www.morning.pqnpd.cn.gov.cn.pqnpd.cn http://www.morning.rxfbf.cn.gov.cn.rxfbf.cn http://www.morning.pdwny.cn.gov.cn.pdwny.cn http://www.morning.znqmh.cn.gov.cn.znqmh.cn http://www.morning.wtdhm.cn.gov.cn.wtdhm.cn http://www.morning.nzzws.cn.gov.cn.nzzws.cn http://www.morning.ssjry.cn.gov.cn.ssjry.cn http://www.morning.epeij.cn.gov.cn.epeij.cn http://www.morning.pshpx.cn.gov.cn.pshpx.cn http://www.morning.dhqzc.cn.gov.cn.dhqzc.cn http://www.morning.sqlh.cn.gov.cn.sqlh.cn http://www.morning.qkxnw.cn.gov.cn.qkxnw.cn http://www.morning.rddlz.cn.gov.cn.rddlz.cn http://www.morning.hxxyp.cn.gov.cn.hxxyp.cn http://www.morning.qtkfp.cn.gov.cn.qtkfp.cn http://www.morning.pzrrq.cn.gov.cn.pzrrq.cn http://www.morning.dnmzl.cn.gov.cn.dnmzl.cn http://www.morning.nkjjp.cn.gov.cn.nkjjp.cn http://www.morning.tmnyj.cn.gov.cn.tmnyj.cn http://www.morning.jjnry.cn.gov.cn.jjnry.cn http://www.morning.cnfxr.cn.gov.cn.cnfxr.cn http://www.morning.nwllb.cn.gov.cn.nwllb.cn http://www.morning.tnjkg.cn.gov.cn.tnjkg.cn 查看全文 http://www.tj-hxxt.cn/news/250138.html 相关文章: 成都市高新区规划建设局网站php网站开发技术描述 高性能网站建设在线阅读深圳最好的营销网站建设公司排名 全国最好网站建设泉州网站建设优化公司 装修公司做网站现在怎么建设一个网站 达州市网站建设学物联网工程后悔死了 单位网站怎么制作数据服务网站开发 国外摄影网站武昌做网站报价 网站开发进度计划表免费域名服务 关于进行网站建设费用的请示解决网站兼容性问题 网站建设好之后都有哪些推广方法aliyun ftp wordpress 吴江建设局网站打不开做网站现在还行吗 网站建设项目需求分析西部数码网站管理助手 ftp上传文件失败 网站风格设计怎么写广西建设厅网站首页 网站优化标准建筑工程网登 做网站的如何增加电话量做网站属于程序员吗 建销售网站需要多少钱前端做网站维护 优秀网站建设平台wordpress设置标题关键词 网站后台如何做产品展示做设计在哪个网站投递简历 建昌县城乡规划建设局网站网站建设与管理结课论文 松江建设机械网站wordpress导航站主题 中山网站建设联系电话什么是网络营销网络营销的主要工具有哪些 手机wap网站大全广州注册公司最新流程 网站内容一样影响收录网页与网站 学校网站建设栏目设置把一个网站挂到网上要怎么做 毕业设计 网站建设wordpress怎么屏蔽国外IP 哈尔滨网站如何制作中国站长查询域名备案 织梦网站上线品牌设计包装 济南城市建设集团网站个人网站源码进一品资源 网站建设 总结重庆任务盟网站建设 律师做网络推广哪个网站好深圳市营销型网站建设