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

重温《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记(一)

第一部分:走近Java

第1章:走近Java

1.1 Java的技术体系

SUN 官方所定义的 Java 技术体系包括:Java程序设计语言、Java虚拟机、Class文件格式、Java API类库、第三方(商业机构和开源社区)Java类库。

其中,「Java程序设计语言」、「Java虚拟机」、「Java API类」这三个被称为 JDK(Java Deployment Kit),即 Java 程序开发的最小环境。

而 JRE(Java Runtime Environment),即 Java 程序运行的标准环境,则包括:Java虚拟机和JavaAPI类库中的Java SE API子集。

按着 Java 重点关注的业务领域来划分,Java技术体系可以分为 4 个平台:

  • Java Card
    支持一些Java小程序运行在小内存设备上的平台,例如:智能卡。
  • Java ME(Micro Edition)
    支持 Java 程序运行在移动终端上的平台,例如:手机、PAD。对J avaAPI 有所精简,并加入了对移动终端的支持,也就是以前称之为 J2ME 的版本。
  • Java SE(Standard Edition)
    支持面向桌面应用的 Java 平台,例如:Windows下的应用程序,提供了完整的 Java 核心 API,也就是以前称之为 J2EE 的版本
  • Java EE(Enterprise Edition)
    支持使用多层架构的企业应用的Java平台,例如:ERP、CRM应用。除了提供Java SE以外,还对其进行了大量的扩充并提供了相应的部署支持。也就是以前称之为J2EE的版本。
1.2 虚拟机的发展史
  • Classic VM
    JDK 1.0 时期,所带的虚拟机为 Classic VM,该虚拟机只能使用纯解释器的方式来运行 Java 代码,如果要使用 JIT 编译器,只能通过外挂的方式。但是编译器和解释器无法配合工作,也就意味着如果使用 JIT 编译器来运行 Java 代码,编译器则会将每一行代码和每一个方法都进行编译,无论它们是否存在被编译的价值。
  • Exact VM
    JDK 1.2 时期,SUN 的虚拟机团队曾在 Solaris 平台上开发了 Exact VM,该虚拟机的执行系统已经具备了现代高性能虚拟机的雏形:如两级即时编译器,编译器和解释器混合工作模式等。该虚拟机为准确式内存管理,这也是该虚拟机名字的由来,虚拟机可以知道内存中某个位置上的数据的类型。
  • HotSpot VM
    该虚拟机是 SUN JDK 和 Open JDK 所带的虚拟机。HotSpot 一开始就是准确式GC(与Exact VM一致),具备热点代码探测能力(这一点Exact VM也具备)。该虚拟机的热点代码探测能力是通过程序计数器找出具有编译价值的代码,然后通知 JIT 编译器以方法为单位进行编译。
http://www.lryc.cn/news/288847.html

相关文章:

  • 定向减免!函数计算让轻量 ETL 数据加工更简单,更省钱
  • git checkout和git switch的区别
  • 故障树分析蒙特卡洛仿真程序(附MATLAB完整代码)
  • 数据结构-线性表
  • java金额数字转中文
  • Ubuntu findfont: Font family ‘SimHei‘ not found.
  • mysql小知识
  • Unity中URP下逐顶点光照
  • Spring Boot3整合Druid(监控功能)
  • 使用Gin框架,快速开发高效的Go Web应用程序
  • 【Unity】【游戏开发】Pico打包后项目出现运行时错误如何Debug
  • 一种解决常用存储设备无法被电脑识别的方法
  • Spark运行架构以及容错机制
  • 短剧APP小程序源码 全开源短视频系统源码/h5/app/小视频系统
  • 深度学习中图像分类、目标检测、语义分割、实例分割哪个难度大,哪个检测精度容易实现,哪个速度低。请按照难度、精度容易实现程度、速度排名。
  • 【AI视野·今日NLP 自然语言处理论文速览 第七十五期】Thu, 11 Jan 2024
  • 数据结构:搜索二叉树 | 红黑树 | 验证是否为红黑树
  • 数据结构顺序表
  • 手把手教你优雅的安装虚拟机 Ubuntu —— 图文并茂
  • 源 “MySQL 5.7 Community Server“ 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。
  • springboot核心有几层架构
  • css3表格练习
  • 项目实战——Qt实现FFmpeg音视频转码器
  • AI数字人-数字人视频创作数字人直播效果媲美真人
  • 初识C语言·动态内存开辟
  • 机器学习 | 利用Pandas进入高级数据分析领域
  • 三、计算机理论-计算机网络-物理层,数据通信的理论基础,物理传输媒体、编码与传输技术及传输系统
  • ERROR Failed to get response from https://registry.npm.taobao.org/ 错误的解决
  • overflow产生的滚动条样式设置
  • Ubuntu环境vscode配置Log4cplus库