-
JVM系列【1】虚拟机基础概念
JVM系列笔记目录
- 虚拟机的基础概念
- class文件结构
- class文件加载过程
- jvm内存模型
- JVM常用指令
- GC与调优
虚拟机的基础概念
1.Java从编码到执行过程
一个Java源文件如Hello.java
通过编译命令javac
编译成class文件Hello.class
,在JVM中ClassLoader加载该class文件到JVM内存中,执行时候通过字节码解释器或是即时编译器解释后,交给执行引擎,执行引擎与OS硬件交互去完成执行。
2.JVM与class文件
JVM与java语言无关?是的,JVM实际上是与class文件打交道,而不是直接与Java语言打交道。理论上,任何编程语言编译成class文件,就可以在JVM中执行,这也是下面说的跨语言平台。
3.跨平台的语言和跨语言平台
跨平台语言: 指该语言可以在不同的操作系统下运行,包括但不限于linux、windows、mac、unix、andriod等。
跨语言平台:如下图简单的例子,不管编程语言是Java、scala、还是kotlin,只要最终编译成class文件,就能在JVM中执行,这里的Java Virtual Machine就是跨语言平台。
4.JVM的概念
何谓Java Virtual Machine? 简单理解就是虚拟出来的一台电脑,有自己特定的字节码指令集(汇编语言的),有专门的内存管理、堆、栈、方法区等。
5.Java语言规范和JVM规范
Java语言规范: The Java Language Specification 具体可以参考 Oracle官方JVM规范
JVM规范: The Java Virtual Machine Specification 具体可以参考 Oracle官方JVM规范
6.常见的JVM规范实现
Oracle官方规定了JVM的规范,不同的厂商针对这个规范实现各自的JVM,如下表。
JVM名称 | 厂商 | 说明 |
---|---|---|
HotSpot | Oracle | 官方JVM |
JRocket | BEA | 曾经号称最快的虚拟机,被Oracle收购,合并进了HotSpot |
J9 | IMB | |
MircrosoftVM | Microsoft | |
TaobaoVM | 阿里巴巴 | 淘宝的JVM |
LiquidVM | BEA | 直接针对硬件的JVM |
Azul VM | Azul | 最新垃圾回收器Zing的标杆 |
知识分享,转载请注明出处。学无先后,达者为先!
出处:
https://www.cnblogs.com/kongbubihai/p/13786209.html
栏目列表
最新更新
Redis哨兵模式高可用解决方案
从 Map -> HashMap 的一步步实现,各位请随
JVM系列【1】虚拟机基础概念
Spring系列13:bean的生命周期
Spring系列9:基于注解的Spring容器配置
Spring系列8:bean的作用域
Spring系列7:`autowire`自动装配怎么玩
Spring系列6:depends-on干预bean创建和销毁顺
Spring系列5:各种属性值依赖注入
再见丑陋的 SwaggerUI,这款开源的API文档生
SQL分库分表
关于如何在window下执行SQLSERVER的定时备份
SQLServer高可用方案在企业生产环境的实践
SQL Server HA - 高可用性解决方案解决方案概
独家揭秘:SQL Server AlwaysOn在阿里云的突破
sqlserver数据库还原存储过程脚本
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
增删商品计算价格
【JavaScript】笔记(6)--- BOM(open 与 clo
【JavaScript】笔记(5)--- DOM(续)(复选
【JavaScript】笔记(4)--- DOM(初步)(获取文
PHP学生校园考勤管理系统,使用MYSQL数据库
重学正则-量词符和预定义类的使用
Kubernetes 生产部署实录 - 基于 sealos 部署
小程序商城网站开发秒杀模块篇
为了实践微前端,重构了自己的导航网站
DOM