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

广州番禺哪里有学网站建设公司网站 免费模板

广州番禺哪里有学网站建设,公司网站 免费模板,肇庆专业网站建设服务,企业网站推广技术1.整体架构和组件 1.Class Loader Class Loader#xff08;类加载器#xff09;负责将.class文件加载到JVM中#xff0c;并生成对应的Java类对象#xff08;Class对象#xff09;。Java中有三种类加载器#xff1a; Bootstram ClassLoader#xff1a;加载核心类库…1.整体架构和组件 1.Class Loader Class Loader类加载器负责将.class文件加载到JVM中并生成对应的Java类对象Class对象。Java中有三种类加载器 Bootstram ClassLoader加载核心类库使用C实现是JVM的一部分Extension ClassLoader加载Java扩展类库例如javax.*包使用Java实现是sun.misc.Launcher的一部分App ClassLoader加载应用程序类使用Java实现是ClassLoader的子类。 .2.Execution Engine Execution Engine执行引擎负责解释字节码将其转换为机器指令并执行程序。JVM的执行引擎包括两种模式 解释器模式Interpretive Mode逐行解释字节码并执行相应的机器指令。这种模式的优点是可以快速启动但是执行速度较慢。编译器模式Compiler Mode将字节码编译为本地机器指令并执行编译后的代码。这种模式的优点是执行速度快但是启动速度慢。 JVM采用了混合模式Mixed Mode在程序运行的过程中根据需要动态地选择使用解释器模式或编译器模式。 3.Runtime Data Area Runtime Data Area运行时数据区是JVM中的数据存储区域包括以下组件 Method Area方法区存储类信息、常量、静态变量等数据。Heap堆存储Java对象和数组。Stack栈存储Java方法的局部变量、操作数栈、方法出口等信息。PC Register程序计数器存储正在执行的Java方法的地址。Native Method Stack本地方法栈为Java调用本地方法提供支持。 4.Native Method Interface Native Method Interface本地方法接口允许Java代码调用C或C编写的本地方法。本地方法通过JNIJava Native Interface实现。JVM将Java参数转换为C/C参数调用本地方法并返回结果。 JVM的整体架构和组件是Java程序运行的基础对于Java程序员来说了解JVM的原理和内部机制可以帮助他们写出更高效、更稳定的Java程序。 2.组件间交互方式 2.1Class Loader和Method Area 当一个Java类第一次被加载时Class Loader会将类的.class文件读入内存并在Method Area中创建对应的Class对象包括类的成员变量、方法等信息。在JVM运行期间所有的类信息都保存在Method Area中包括类的字节码、运行时常量池、字段和方法信息等。 2.2Heap和Stack 在Java程序中创建对象时它们的实例数据存储在Heap中而对象的引用则存储在Stack中。每个Java方法都会创建一个栈帧Stack Frame存储该方法的局部变量、操作数栈、方法出口等信息栈帧也存储在Stack中。 当一个Java方法被调用时JVM会在Stack中创建一个新的栈帧并将该栈帧推入栈顶。当方法执行完成后JVM会弹出该栈帧并回收其内存空间。 2.3Execution Engine和Method Area Execution Engine负责执行Java字节码并将其转换为计算机能够执行的机器指令。在执行字节码之前Execution Engine需要在Method Area中查找字节码、常量等信息并将其载入运行时常量池中。 2.4Native Method Interface和Native Method Stack 当Java程序需要调用C/C编写的本地方法时JVM会将Java参数转换为C/C参数并调用本地方法。本地方法的结果会被返回给Java程序并且需要将C/C结果转换为Java结果。 Native Method Interface提供了一种机制可以在Java程序中调用C/C编写的本地方法使Java程序能够与底层系统交互。 3.类加载器的工作原理和类加载的过程 类加载器ClassLoader是JVM的一个重要组成部分它负责将Java类从磁盘或网络等外部存储器中加载到JVM的内存中。类加载器采用的是“双亲委派模型”即当一个类需要被加载时它首先会委托它的父类加载器寻找该类直到最终委托到启动类加载器为止。如果所有的父类加载器都无法找到该类则由该类加载器自行加载。 类加载的过程通常包括以下三个阶段 加载Loading查找并加载类的二进制数据。类加载器首先会通过类的全限定名找到对应的.class文件然后将二进制数据读入内存并在内存中创建对应的Class对象。需要注意的是同一个类在JVM中只会被加载一次。 连接Linking将类的二进制数据合并到JVM的运行时环境中。连接阶段包括三个步骤 验证Verification确保类的二进制数据符合JVM规范并且没有安全漏洞。准备Preparation为类的静态变量分配内存并设置默认值。解析Resolution将符号引用替换为直接引用即将类、字段、方法等引用转换为内存地址。 初始化Initialization为类的静态变量赋初值并执行类的静态代码块。在JVM中类的初始化是一个线程安全的操作保证了类只会被初始化一次。如果该类还有父类那么会先初始化父类。 需要注意的是JVM只有在需要用到某个类时才会进行类的加载和初始化这种机制被称为“延迟加载”。同时JVM还支持动态类加载机制可以在程序运行期间通过Java反射机制加载新的类并将其加入到JVM中。 4.字节码指令集的基本语法和用法 Java代码在经过编译器编译后会被转换成字节码Bytecode也就是一种跨平台的中间代码。字节码指令集是Java虚拟机JVM可以识别并执行的代码格式。字节码指令集具有简洁、紧凑的特点并且与底层的硬件架构无关因此可以在不同的平台上运行。 字节码指令集由单个字节的指令组成每个指令都有一个操作码Opcode和一个或多个操作数。Java虚拟机通过执行一系列的字节码指令来完成Java程序的运行。 下面是字节码指令集的一些基本语法和用法 4.1加载和存储指令 从局部变量表加载值到操作数栈iload, dload, aload, etc.从操作数栈存储值到局部变量表istore, dstore, astore, etc. 4.2运算指令 二进制运算指令iadd, dadd, isub, dsub, imul, dmul, idiv, ddiv, irem, drem, etc.位运算指令ishl, ishr, iushr, iand, ior, ixor, etc. 4.3类型转换指令 将整型值转换为其他类型i2d, i2l, i2f, etc.将浮点型值转换为其他类型d2i, d2l, d2f, etc.将长整型值转换为其他类型l2i, l2d, l2f, etc. 4.4控制指令 条件跳转指令ifeq, ifne, iflt, ifgt, ifle, ifge, etc.无条件跳转指令goto, goto_w, etc.返回指令ireturn, dreturn, areturn, etc. 4.5对象操作指令 创建新对象指令new, newarray, anewarray, etc.字段操作指令getfield, putfield, getstatic, putstatic, etc.方法调用指令invokevirtual, invokespecial, invokestatic, invokeinterface, etc. 总的来说字节码指令集提供了Java虚拟机执行Java程序的基本语法和用法同时也是Java程序跨平台运行的重要保障之一。 5.JIT编译器和AOT编译器 JIT编译器和AOT编译器都是将代码转换为机器码的工具但它们的工作方式和优缺点存在较大差异。 JIT编译器Just-In-Time Compiler在程序运行过程中将字节码实时编译为本地机器码执行。JIT编译器可以根据程序的实际运行情况对热点代码进行优化提高程序的执行效率。JIT编译器的优点包括 即时编译避免了预编译导致的启动时间过长问题动态编译可以根据程序的实际运行情况进行优化提高程序的执行效率与Java虚拟机紧密结合提高了程序的可移植性和兼容性。 JIT编译器的缺点包括 编译时间较长可能会影响程序的响应时间对于一些只执行一次的代码JIT编译器不会进行优化浪费了一些性能资源JIT编译器会占用较多的内存空间。 AOT编译器Ahead-Of-Time Compiler在程序运行前将Java字节码编译为本地机器码生成可执行文件。AOT编译器可以通过静态编译的方式对整个程序进行优化提高程序的执行效率。AOT编译器的优点包括 编译时间较短启动时间较短可以进行全局优化对整个程序进行优化提高程序的执行效率可以在没有Java虚拟机的环境下运行程序。 AOT编译器的缺点包括 缺乏动态优化对于程序的实际运行情况无法进行优化可能导致可移植性和兼容性问题占用磁盘空间较大难以适用于资源受限的环境。 综上所述JIT编译器和AOT编译器在实现方式和优缺点上存在差异各自适用于不同的场景。在Java虚拟机中JIT编译器是主流的编译器可以提供动态优化和更好的可移植性而AOT编译器则更适用于一些特定场景如嵌入式系统或移动端应用。
http://www.yingshimen.cn/news/103754/

相关文章:

  • 广西和城乡建设厅网站网站推广的方法ppt
  • 手机营销网站建设wordpress改变主题页脚
  • 广东省建设监理协会网站官网二手书的网站建设
  • 即刻搜索收录网站网页翻译英文
  • 南昌网站建设好么网站菜单样式
  • 辉县网站建设求职简历品牌营销策略包括哪些内容
  • 网站设计公司西安网站建设规模
  • 单页营销网站网站搭建模板
  • 哪个网站可以建设网站有没有免费的微网站
  • seo网站改版方案怎么写网络营销比较常用的营销模式有哪些
  • 企业网站 报价彩票网站做代理
  • 关闭站长工具seo综合查询做网站怎样才能接单
  • 上海手机网站建设电话四川华泰建设集团网站
  • 长沙建设工程造价网站网站的规划与建设_按时间顺序可以分为哪几个阶段?
  • wordpress识图工具seo网站改版方案怎么写
  • 有了网站后台后怎么做seo优化宁波网站建设制作价格
  • 深圳做app网站的公司建设银行投资网站
  • 服装市场调网站建设的目的安宁网站建设
  • 网站模版 蓝色请人做个网站多少钱
  • 腾讯官方网站qq注册浙江省省建设厅网站
  • 网站开发语言的选择织梦做的网站首页出现空白
  • 做一个旅游团网站怎么做重庆市今天最新消息
  • 免费网站排名优化wordpress文章导出ghost
  • 如何提升网站的收录量英文书 影印版 网站开发
  • 汉沽集团网站建设做网站要找什么公司
  • 西安公积金 网站建设科技文化网站建设方案
  • 如何设计一个企业网站做酒水网站陕西有哪些
  • 湖南网站推广哪家专业wordpress使用七牛云
  • 中山移动网站设计生活服务手机网站开发
  • php网站开发的相关技术软件设计说明书模板