当前位置: 首页 > news >正文

做搜索引擎网站iis 会影响 网站 速度

做搜索引擎网站,iis 会影响 网站 速度,昆山市有没有做网站设计的,淄博seo费用首页 基础教程 基础知识 JDKJREJVMJava JVM类加载顺序详解JVM加载就是寻找一个类或是一个接口的二进制形式并用该二进制形式来构造代表这个类或是这个接口的class对象的过程#xff0c;其中类或接口的名称是给定了的。当然名称也可以通过计算得到 基础教程  基础知识  JDKJREJVMJava JVM类加载顺序详解JVM加载就是寻找一个类或是一个接口的二进制形式并用该二进制形式来构造代表这个类或是这个接口的class对象的过程其中类或接口的名称是给定了的。当然名称也可以通过计算得到但是更常见的是通过搜索源代码经过编译器编译后所得到的二进制形式来构造。类加载顺序如下图展示在Java中类装载器把一个类装入JVM中要经过三个步骤来完成加载、链接和初始化其中链接又可以分成校验、准备和解析三步除了解析外其它步骤是严格按照顺序完成的各个步骤的顺序如下第一步加载查找和导入类或接口的二进制数据JVM类加载加载时类加载过程的第一个阶段在加载阶段虚拟机需要完成以下三件事情1、通过一个类的全限定名来获取其定义的二进制字节流。2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。3、在Java堆中生成一个代表这个类的java.lang.Class对象作为对方法区中这些数据的访问入口。相对于类加载的其他阶段而言加载阶段(准确地说是加载阶段获取类的二进制字节流的动作)是可控性最强的阶段因为开发人员既可以使用系统提供的类加载器来完成加载也可以自定义自己的类加载器来完成加载。加载阶段完成后虚拟机外部的 二进制字节流就按照虚拟机所需的格式存储在方法区之中而且在Java堆中也创建一个java.lang.Class类的对象这样便可以通过该对象访问方法区中的这些数据。第二步链接执行下面的校验、准备和解析步骤其中解析步骤是可以选择的第三步校验检查导入类或接口的二进制数据的正确性JVM类加载验证是连接阶段的第一步这一阶段的目的是为了确保Class文件的字节流中包含的信息符合当前虚拟机的要求并且不会危害虚拟机自身的安全。验证阶段大致会完成4个阶段的检验动作文件格式验证验证字节流是否符合Class文件格式的规范例如是否以0xCAFEBABE开头、主次版本号是否在当前虚拟机的处理范围之内、常量池中的常量是否有不被支持的类型。元数据验证对字节码描述的信息进行语义分析(注意对比javac编译阶段的语义分析)以保证其描述的信息符合Java语言规范的要求例如这个类是否有父类除了java.lang.Object之外。字节码验证通过数据流和控制流分析确定程序语义是合法的、符合逻辑的。符号引用验证确保解析动作能正确执行。验证阶段是非常重要的但不是必须的它对程序运行期没有影响如果所引用的类经过反复验证那么可以考虑采用-Xverifynone参数来关闭大部分的类验证措施以缩短虚拟机类加载的时间。第四步准备给类的静态变量分配并初始化存储空间JVM类加载准备阶段是正式为类变量分配内存并设置类变量初始值的阶段这些内存都将在方法区中分配。对于该阶段有以下几点需要注意1、这时候进行内存分配的仅包括类变量(static)而不包括实例变量实例变量会在对象实例化时随着对象一块分配在Java堆中。2、这里所设置的初始值通常情况下是数据类型默认的零值(如0、0L、null、false等)而不是被在Java代码中被显式地赋予的值。假设一个类变量的定义为public static int value 3那么变量value在准备阶段过后的初始值为0而不是3因为这时候尚未开始执行任何Java方法而把value赋值为3的putstatic指令是在程序编译后存放于类构造器()方法之中的所以把value赋值为3的动作将在初始化阶段才会执行。3、如果类字段的字段属性表中存在ConstantValue属性即同时被final和static修饰那么在准备阶段变量value就会被初始化为ConstValue属性所指定的值。假设上面的类变量value被定义为 public static final int value 3编译时Javac将会为value生成ConstantValue属性在准备阶段虚拟机就会根据ConstantValue的设置将value赋值为3。回忆上一篇博文中对象被动引用的第2个例子便是这种情况。我们可以理解为static final常量在编译期就将其结果放入了调用它的类的常量池中第五步解析将符号引用转成直接引用JVM类加载解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程解析动作主要针对类或接口、字段、类方法、接口方法、方法类型、方法句柄和调用点限定符7类符号引用进行。符号引用就是一组符号来描述目标可以是任何字面量。直接引用就是直接指向目标的指针、相对偏移量或一个间接定位到目标的句柄。第六步初始化激活类的静态变量的初始化Java代码和静态Java代码块。JVM类加载初始化为类的静态变量赋予正确的初始值JVM负责对类进行初始化主要对类变量进行初始化。在Java中对类变量进行初始值设定有两种方式①声明类变量是指定初始值②使用静态代码块为类变量指定初始值JVM初始化步骤1、假如这个类还没有被加载和连接则程序先加载并连接该类2、假如该类的直接父类还没有被初始化则先初始化其直接父类3、假如类中有初始化语句则系统依次执行这些初始化语句类初始化时机只有当对类的主动使用的时候才会导致类的初始化类的主动使用包括以下六种– 创建类的实例也就是new的方式– 访问某个类或接口的静态变量或者对该静态变量赋值– 调用类的静态方法– 反射(如Class.forName(“com.shengsiyuan.Test”))– 初始化某个类的子类则其父类也会被初始化– Java虚拟机启动时被标明为启动类的类(Java Test)直接使用java.exe命令来运行某个主类版权声明本文为JAVASCHOOL原创文章未经本站允许不得转载。
http://www.zqtcl.cn/news/919203/

相关文章:

  • 婚纱网站页面设计上海商地网站建设公司
  • 模板手机网站建设多少钱百度搜索词排名
  • 怎么学做网站住房和城乡建设部网站一级建造师
  • 政务公开网惠州seo推广公司
  • 建设英文商城网站网站开发工具选择
  • 沈阳市浑南区城乡建设局网站淄博哪里有网站建设平台
  • 做不锈钢管网站口碑好的定制网站建设提供商
  • 做网站推广销售wordpress 随机页面
  • 陈坤做直播在哪个网站如何在建设银行网站预约纪念币
  • 如何做网站么新网站一天做多少外链
  • 用家用路由器ip做网站营销策略方案
  • 学历教育网站建设网页前端是什么
  • 相同网站名网站县区分站点建设
  • 医疗器械网站建设方案南京网站制作系统
  • 小网站托管费用企查宝企业查询
  • 专门做特卖的网站是什么外国炫酷网站网址
  • 学习网站的建设wordpress批量拿shell
  • 中企动力做的网站推软件
  • 北京财优化沧州seo公司
  • 收到网站代码后怎么做啥是东莞网站优化推广
  • 重庆商城网站开发网站建设中英版
  • 免费企业网站开发给酒吧做网站
  • 想用自己电脑做服务器做个网站吗网站制作工作室哪家比较好
  • 这样建立网站vs2008做网站
  • 做网站创业故事好看大方的企业网站源码.net
  • 做家常菜哪个网站最好香蜜湖附近网站建设
  • 网站index.php被修改seo网络推广经理招聘
  • 南京做网站联系南京乐识网站建设培训福州
  • 比较冷门的视频网站做搬运网站建设 分析
  • 网站开发实习计划模板有做数学题的网站吗