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

兰坪建设公司网站百度网页链接

兰坪建设公司网站,百度网页链接,设计公司装修效果图,学院网站建设流程图JVM是一种虚拟的计算机#xff0c;它模拟了一个完整的硬件系统#xff0c;并运行在一个完全隔离的环境中。这意味着JVM可以看作是一个在操作系统之上的计算机系统#xff0c;与VMware、Virtual Box等虚拟机类似。JVM的设计目标是提供一个安全、可靠、高效且跨平台的运行环境…JVM是一种虚拟的计算机它模拟了一个完整的硬件系统并运行在一个完全隔离的环境中。这意味着JVM可以看作是一个在操作系统之上的计算机系统与VMware、Virtual Box等虚拟机类似。JVM的设计目标是提供一个安全、可靠、高效且跨平台的运行环境使得Java程序可以在任何装有JVM的平台上运行实现“一次编译多次运行”的特性。 JVM的体系架构主要包括以下几个部分 类加载器ClassLoader 类加载器负责从文件系统或网络中加载.class文件然后将其转换成Java类以供JVM执行。JVM定义了三种类加载器启动类加载器Bootstrap ClassLoader、扩展类加载器Extension ClassLoader和应用程序类加载器Application ClassLoader。此外用户还可以自定义类加载器。 类加载器的工作原理可以概括为三个步骤加载、链接和初始化。 加载类加载器首先会检查这个类的字节码文件是否已经被加载过如果尚未加载系统会初始化一个新的类。加载类的方式主要是从文件系统中读取.class文件或者从网络获取.class文件或者从zip、jar等归档包中读取.class文件或者从其他来源动态生成.class文件。然后类加载器将这个字节码文件的内容加载到内存中并生成一个代表这个类的java.lang.Class对象这个对象会被放入到Java堆内存中。 链接链接包含验证、准备和解析三个阶段。验证是为了确保被加载的类文件信息符合JVM规范没有安全方面的问题准备是给类的静态变量分配内存并设置默认的初始值解析是将符号引用转换为直接引用也就是将类中的符号引用比如方法名转换为实际的内存地址引用。 初始化初始化阶段是执行类构造器方法的过程。此方法由编译器自动收集类中的所有类变量的赋值动作和静态代码块集合来生成的。 JVM提供了三种类型的类加载器启动类加载器Bootstrap ClassLoader、扩展类加载器Extension ClassLoader和应用程序类加载器Application ClassLoader。 启动类加载器这是最顶层的加载类主要加载核心类库如rt.jar、resources.jar、charsets.jar等。它并不继承自ClassLoader因为它在Java程序运行之前就已经被加载了。 扩展类加载器这是启动类加载器的子加载器它的父加载器是启动类加载器。它主要负责加载Java的扩展类库。 应用程序类加载器这是扩展类加载器的子加载器它的父加载器是扩展类加载器。它主要负责加载应用程序的类路径CLASSPATH上的类库。 这三种类加载器之间存在层级关系形成了一种双亲委派模型。当一个类加载器收到了类加载请求它首先不会自己先去加载而是把这个请求委派给父类加载器去完成每一个层次的类加载器都是如此因此所有的加载请求最终都应该传送到顶层的启动类加载器中。只有当父类加载器无法完成这个加载请求它的搜索范围中没有找到所需的类时子加载器才会尝试自己去加载。 类加载器的作用主要是实现类的动态加载即只有在程序运行时才根据需要加载相应的类而不是一次性加载所有的类。这种机制有助于减少程序启动时的内存开销同时也可以避免加载无用的类提高程序的运行效率。 运行时数据区 这是JVM在执行Java程序时使用的内存区域主要包括方法区、堆、Java栈、程序计数器和本地方法栈。其中方法区和堆是线程共享的而Java栈、程序计数器和本地方法栈则是线程私有的。 方法区Method Area 方法区也被称为元空间Metaspace。它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译后的代码等数据。方法区是硬盘和CPU的中间桥梁承载着操作系统和应用程序的实时运行。在HotSpot虚拟机中方法区是线程共享的内存区域它随着虚拟机的启动而创建随着虚拟机的退出而销毁。 堆区Heap 堆区是垃圾收集器管理的主要区域也被称为“垃圾收集堆”。堆区是线程共享的它分为新生代和老年代。新生代主要存放新创建的对象而老年代则存放存活时间较长的对象。堆区是JVM所管理的最大一块内存区域几乎所有的对象实例都会在这里分配内存。 栈区Stack 每个线程在创建时都会创建一个虚拟机栈每个方法在执行时都会创建一个栈帧Stack Frame用于存储局部变量表、操作数栈、动态链接、方法出口等信息。栈区是线程私有的每个线程都有自己的栈区它的生命周期与线程的生命周期一致。栈区分为Java栈和本地方法栈。Java栈用于执行Java方法而本地方法栈则用于执行native方法。 程序计数器Program Counter 程序计数器是一块较小的内存空间也是运行速度最快的存储区域。它是线程私有的每个线程都有一个自己的程序计数器其生命周期与线程的生命周期一致。程序计数器用于指示当前线程所执行的字节码的行号指示器字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。它是程序控制流的指示器分支、循环、跳转、异常处理和线程恢复等功能都需要依赖这个计数器完成。 执行引擎 执行引擎负责执行JVM中的字节码。它采用即时编译JIT技术将字节码编译成机器码以提高执行效率。此外执行引擎还负责执行本地方法即使用其他语言如C和C编写的代码。 执行引擎主要包含以下几个部分 解释器 当JVM启动时解释器会根据预定义的规范对字节码进行逐行解释执行。解释器会“翻译”每条字节码指令为对应平台的本地机器指令并执行这些指令。这种方式实现了Java的跨平台特性因为字节码是平台无关的只要有对应的解释器就可以在任何平台上执行。 即时编译器JIT Compiler 即时编译器是另一种执行字节码的方式。与解释器不同JIT编译器会将字节码直接编译成和本地机器平台相关的机器语言。这种方式可以提高程序的执行效率因为编译后的机器代码通常比解释执行的代码运行得更快。JIT编译器通常会在程序运行时根据程序的热点代码频繁执行的代码进行编译优化以提高程序的性能。 执行引擎的工作过程如下 指令获取 执行引擎在执行过程中会根据程序计数器Program Counter来确定下一条需要执行的字节码指令。程序计数器是一个较小的内存空间它记录了当前线程所执行的字节码的行号。每当执行完一项指令操作后程序计数器就会更新为下一条需要被执行的指令地址。 指令执行 获取到指令后执行引擎会将其解释或编译为本地机器指令并在硬件上执行这些指令。这个过程可能会涉及到对本地方法栈的调用以执行native方法使用其他语言编写的代码。
http://www.hkea.cn/news/14350044/

相关文章:

  • 镇江百姓网快速将网站seo
  • 网站开发的好处和弊端公司做网站需要准备什么资料
  • 合肥比较好的网站建设公司专题网站模板
  • 网站浏览量提升网络需求分析的主要内容有哪些
  • 页面设计素材网站asp 网站权限设计
  • 微博上如何做网站推广当今做那些网站能致富
  • 网站运营顾问网站开发视频教程迅雷下载
  • 高级设计网站加盟网站合作
  • 建站模板推荐茶叶网站模板免费下载
  • 黑龙江建设网站招聘自学网站建设哪些网站
  • 深圳app网站设计wordpress默认主题twenty
  • 简约淘宝网站模板免费下载重庆网站推广网络推广
  • 关于做公司官方网站域名申请超炫网站欣赏
  • 做网站诈钱合肥网站搜索引擎优化
  • 省级别网站建设方案免费的app推广平台
  • 做网站的相关教程wordpress 静态发布
  • 公司网站开发费账务处理软件编程入门自学教程
  • 高端营销型网站拓者设计吧官网图片
  • 调用wordpress栏目列表页seo搜索优化待遇
  • 专业做网站报价安居客网官网入口
  • 帮建网站的人ps做网站首页设计教程
  • 做图素材网站开哪个vip好详情页模板素材
  • 营销型网站建设排名优化百度网站
  • 免费做mc皮肤网站龙岗网站设计案例
  • 建设银行官方网站个人注册新公司流程和资料
  • 网站建设工作总结培训锦州网站优化
  • 酒店网站建设案例室内装饰设计平面图
  • 为什么要建设应急管理网站html5旅游网站源码
  • 漳州专业网站建设费用互联网大厂名单
  • 网站下载端口建设北京建设高端网站的