zoukankan      html  css  js  c++  java
  • 深入理解Java虚拟机-第三版-前言及第一章笔记

      【前言】

    JVM隐藏了底层技术的复杂性和机器与操作系统的差异性。建立了统一的平台。
    C、C++还要去关心物理硬件的兼容。Java解决了这一问题,将软件开发与硬件平台的细节解耦了,节省了程序员的精力,降低了技术门槛。

    程序员不用再去关心硬件平台的兼容与内存等资源的管理工作。
    如果开发人员不了解虚拟机诸多技术特性的运行原理,就无法写出最适合虚拟机运行和自优化的代码。

    如果用于生产开发,尤其是大规模的、企业级的生产开发,就迫切需要开发人员中至少有一部分人对虚拟机的特性及调节方法具有很清晰的认识。

      【推荐书籍】

    《Java虚拟机规范》 必读
    《Java语言规范》 与上本都是Oracle官方出版,本书由高斯林亲自执笔撰写
    《垃圾回收算法手册:自动内存管理的艺术》 垃圾回收领域的必读
    《Virtual Machines:Versatile Platforms for Systems and Processes》 建立虚拟机的全局观念
    《Java性能优化权威指南》 从操作系统到基于Java的上层程序性能度量和调优进行全面介绍。其中涉及Java虚拟机的内容具备一定深度和很好的可实践性。

      【JVM发展】

    SunClassic/Exact VM
    HotSpot VM
    Mobile/Embedded VM
    BEA JRockit/IBM J9 VM
    平时所提及的“高性能Java虚拟机”一般是指HotSpot、JRockit、J9这类在通用硬件平台上运行的商用虚拟机

    BEA Liquid VM/Azul VM
    Liquid VM不需要操作系统的支持,或者说它自己本身实现了一个专用操作系统的必要功能。最大限度地发挥硬件的能力。
    Zing
    ......

    Graal VM --未来的发展方向

    对不需要长时间运行的,或者小型化的应用而言,Java天生就带有一些劣势。这里并不只是指跑个HelloWorld也需要百多兆的JRE之类的问题,更重要的是指近几年在从大型单体应用架构向小型微服务应用架构发展的技术潮流下,Java表现出来的不适应。

    单个微服务很可能就不再需要面对数十、数百GB乃至TB的内存,有了高可用的服务集群,也无须追求单个服务要7×24小时不间断地运行,它们随时可以中断和更新;但相应地,Java的启动时间相对较长,需要预热才能达到最高性能等特点就显得相悖于这样的应用场景。

  • 相关阅读:
    docker 基于现有镜像修改后保存,上传私有仓库
    新装docker 从本地仓库下载
    decode_json 必须是unicode形式的字符
    浅谈消息队列的原理及优势
    javascript基础修炼(10)——VirtualDOM和基本DFS
    消息队列属性及常见消息队列介绍
    【Angular专题】——【译】Angular中的ForwardRef
    单体应用微服务改造实践
    SpringCloud微服务2-服务提供者和消费者
    基于CSE的微服务工程实践-Native API先行
  • 原文地址:https://www.cnblogs.com/bruceChan0018/p/15017433.html
Copyright © 2011-2022 走看看