0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Java虚拟机发展史:深入理解Java虚拟机

如意 来源:百家号 作者:怡子科技 2020-07-01 11:57 次阅读

Java虚拟机发展史

从1996年初sun公司发布的jdk1.0中所包含的sun Classic VM到今天,曾经涌现或消失过许多经典和特色的虚拟机出现。Classic VM只能使用纯编辑器来执行。如果要使用jit编辑器必须使用外挂。执行效率和传统的c/c++程序有很大差异,“Java语言很慢”就是在这个时候在用户中树立起来的。

Sun公司努力去解决classvm的问题,为了提升运行效率,在jdk1.2使用了exact vm 它的执行系统已经具备现代高性能虚拟机的雏形。编译器和解释器混合工作模式。虽然比第一代先进了许多,但在商业中只存在了很短暂的时间就被hotspot vm所取代,甚至还没来的及发布windows和linx下的商用版本。

提起hotspotvm。它是sun jdk 和open jdk中所带的虚拟机,也是目前使用范围最广的Java虚拟机。继承了上两代虚拟机的优点。

热点代码和探测技术,hotSpot热点探测能力可以通过执行计数器找出最具有编译价值的代码,然后通过jit以方法为单位进行编译。

Java技术的未来是趋向于模块化的,技术平台越来越复杂,越来越庞大。当单一的Java开发无法满足当前软件的复杂需求,越来越多的Java虚拟机的语言开发被应用到我们的软件项目中。

如今,cpu硬件的发展方向已经从高频率转化为多核心,软件开发越来越关注并行编程的领域。Jdk1.5 引入了Java.util.concurrent包实现了粗粒度的并发框架。而1.7的forkjoin包则包含了对这个框架的一次重要扩充。Jdk1.8提供lambda 极大的改善了Java语言不适合函数式编程的现状。在几年之前,主流的cpu就支持64位架构了。,Java也早早地推出了支持64位的版本。

想要精通jdk内部的实现机制,最便捷的路径是自己编译一套jdk,虽然门槛高很多,但肯定比阅读书籍,文章更贴近本质,怎么获取jdk源码?Source bundle releases 获取打包好的源码。大概99M,解压后约 339M。

Java虚拟机在执行Java程序的过程中,会把它所管理的内存划分为若干个不同的数据区。这些区域有各自的用途,有的区域随着随着虚拟机进程的启动而存在。有些区域则依赖于用户线程的启动和结束建立和销毁。

程序计数器是一块较小的内存空间,它可以看作当前线程执行字节码的行数指示器。每条线程都需要一个独立的程序计数器。线程之间计数器互不影响。如果线程正在执行一个方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址:如果正在执行native方法。这个计数器值则为空,此内存区域是唯一一个虚拟机没有任何outofmemoryError的区域。

Java虚拟机栈也是线程私有的,虚拟机栈是Java方法执行的内存模型,存储局部变量表,操作数栈,方法出口,动态链接等信息。如果线程请求的栈深度大于虚拟机所允许的深度,抛出stackOverFlowError。本地方法栈为虚拟机使用native方法使用。

Java堆是管理内存中最大的一块,是所有线程共享,存放对象实例。有的时候也被成为GC堆,采用分代收集算法,分为新生代和老生代 如果堆无法继续扩展并且实例无法内存分配。抛出outofmemoryError。方法区和堆一样,各个线程共享的内存区域。存储类信息,常量,静态变量,即时编译器编译后的代码等数据。运行时常量池是方法区的一部分。直接内存并不是虚拟机运行的一部分,也不是Java规范的内存区域,在jdk1.4加入nio,引入基于通道的缓冲区的I/o方式,它可以使用native函数库直接分配堆外内存,这样显著提高性能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2960

    浏览量

    104569
  • 虚拟机
    +关注

    关注

    1

    文章

    908

    浏览量

    28111
收藏 人收藏

    评论

    相关推荐

    虚拟化数据恢复—XenServer虚拟机数据恢复案例

    Server操作系统虚拟机,该虚拟机有2块虚拟磁盘(系统盘+数据盘),当作网站服务器使用。 服务器虚拟化故障: XenServer虚拟机
    的头像 发表于 11-08 10:32 110次阅读
    <b class='flag-5'>虚拟</b>化数据恢复—XenServer<b class='flag-5'>虚拟机</b>数据恢复案例

    虚拟化数据恢复——Hyper-V虚拟机数据恢复案例

    虚拟化数据恢复环境: Windows Server操作系统服务器上部署Hyper-V虚拟机环境。虚拟机的硬盘文件和配置文件存放在一台存储中,该存储上有一组由4块硬盘组建的raid5阵列,除此之外
    的头像 发表于 10-25 09:26 135次阅读
    <b class='flag-5'>虚拟</b>化数据恢复——Hyper-V<b class='flag-5'>虚拟机</b>数据恢复案例

    虚拟机数据恢复—异常断电导致XenServer虚拟机不可用的数据恢复案例

    虚拟机数据恢复环境: 某品牌服务器通过同品牌某型号的RAID卡,将4块STAT硬盘为一组RAID10阵列。上层部署XenServer虚拟化平台,虚拟机安装Windows Server系统,每台
    的头像 发表于 10-21 14:17 157次阅读
    <b class='flag-5'>虚拟机</b>数据恢复—异常断电导致XenServer<b class='flag-5'>虚拟机</b>不可用的数据恢复案例

    虚拟化数据恢复—异常断电导致VMware虚拟机文件丢失的数据恢复案例

    某品牌服务器(部署VMware EXSI虚拟机)+同品牌存储(存放虚拟机文件)。
    的头像 发表于 09-14 17:35 339次阅读
    <b class='flag-5'>虚拟</b>化数据恢复—异常断电导致VMware<b class='flag-5'>虚拟机</b>文件丢失的数据恢复案例

    虚拟化数据恢复—EXSI虚拟机误还原快照如何恢复数据?

    虚拟化技术原理是将硬件虚拟化供不同的虚拟机使用,一台物理机上可以有多台虚拟机。人为误操作或者物理故障会导致上层
    的头像 发表于 09-09 11:56 316次阅读
    <b class='flag-5'>虚拟</b>化数据恢复—EXSI<b class='flag-5'>虚拟机</b>误还原快照如何恢复数据?

    什么是虚拟机?什么是虚拟化?

    在日新月异的科技世界中,虚拟化技术如同一座桥梁,连接着现实与数字的鸿沟,为我们打开了全新的计算维度。虚拟机,这一概念,自其诞生以来,就以其独特的魅力和强大的功能,深深地影响了软件开发、系统测试和云计算等多个领域。即使目前你还不了解它的应用,你应该也听过
    的头像 发表于 09-04 14:55 704次阅读

    创建ubuntu虚拟机

    英文的习惯。创建ubuntu虚拟机打开VMware软件,点击创建新的虚拟机。进入以下界面:选择自定义,点击“下一步”。选择对应VMware版本的兼容性,版本可在帮助->关于VMware
    发表于 08-10 14:15

    虚拟机数据恢复—KVM虚拟机被误删除的数据恢复案例

    虚拟机数据恢复环境: Linux操作系统服务器,EXT4文件系统。服务器中有数台KVM虚拟机虚拟机1:主数据库服务器 虚拟磁盘:系统盘(qcow2)+数据盘(raw)
    的头像 发表于 08-07 13:33 377次阅读
    <b class='flag-5'>虚拟机</b>数据恢复—KVM<b class='flag-5'>虚拟机</b>被误删除的数据恢复案例

    什么是虚拟机虚拟机真的那么好用吗?

    在日新月异的科技世界中,虚拟化技术如同一座桥梁,连接着现实与数字的鸿沟,为我们打开了全新的计算维度。虚拟机,这一概念,自其诞生以来,就以其独特的魅力和强大的功能,深深地影响了软件开发、系统测试和云
    的头像 发表于 07-06 08:05 463次阅读
    什么是<b class='flag-5'>虚拟机</b>?<b class='flag-5'>虚拟机</b>真的那么好用吗?

    虚拟化数据恢复—虚拟机误还原快照的数据恢复案例

    有一台虚拟机是由物理迁移到ESXI上面的,迁移完成后为该虚拟机做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了5年左右的数据。 该ESXI上共有二十几台
    的头像 发表于 05-11 11:07 507次阅读

    虚拟机的ip地址和主机一样吗

    虚拟机的ip地址和主机一样吗  虚拟机的IP地址和主机的IP地址通常不相同。虚拟机是在主机上通过虚拟化技术创建的虚拟化实例,它可以在同一台物
    的头像 发表于 03-26 15:34 4954次阅读

    虚拟机数据恢复-虚拟机还原快照原理和误还原快照的数据恢复方案

    由一台物理服务器迁移到ESXI上的虚拟机虚拟机迁移完成后做了一个快照,该ESXI上面一共运行了数十台虚拟机。某天工作人员不小心将快照进行了还原,虚拟机内的数据还原到了数年前刚迁移过来
    的头像 发表于 02-27 11:54 959次阅读
    <b class='flag-5'>虚拟机</b>数据恢复-<b class='flag-5'>虚拟机</b>还原快照原理和误还原快照的数据恢复方案

    VMware虚拟机的三种网络模式

    VMware虚拟机的三种网络模式 VMware是一种广泛使用的虚拟机软件,可以创建和管理多个虚拟机。在使用VMware虚拟机时,网络设置非常重要,因为它决定了
    的头像 发表于 02-04 11:17 1898次阅读

    虚拟机ubuntu怎么联网

    虚拟机ubuntu怎么联网  虚拟机(Virtual Machine)是运行在物理(Host Machine)上的虚拟操作系统环境。在虚拟机
    的头像 发表于 12-27 16:51 947次阅读

    java虚拟机内存包括远空间内存吗

    Java虚拟机(JVM)内存是Java程序执行时所使用的内存空间的总称,包括了Java堆、方法区、本地方法栈、虚拟机栈和程序计数器等多个部分
    的头像 发表于 12-05 14:15 381次阅读