01 JVM与Java体系--B站尚硅谷JVM课程学习

本文详细介绍了Java虚拟机(JVM)的历史、特点、架构及垃圾回收机制。从HotSpot虚拟机到G1垃圾回收器的发展,展示了Java自动内存管理的能力。JVM的生命周期包括启动、执行和退出,其内部结构涉及堆、栈、方法区等组件。文章还提及了不同类型的指令集架构以及JVM在性能和可移植性之间的权衡。
摘要由CSDN通过智能技术生成

1 前言

Java自动动态管理内存,自动垃圾回收

2 面向人群及参考书目

Java虚拟机规范:
在这里插入图片描述
《深入理解Java虚拟机》周志明

3 Java及JVM简介

Java:跨平台语言
JVM:跨语言的平台
在这里插入图片描述

Java内置的虚拟机是HotSpot
在这里插入图片描述
任何能在JVM平台上执行的字节码格式是相同的,统称为JVM字节码

4 Java发展的重大事件

1990年 Sun公司开发了Oak 后改名为Java
2000年 Java HotSpot 虚拟机发布,Java的默认虚拟机
2004年 Java5.0发布
2006年 Java开源 建立了OpenJDK,HotSpot也成为OpenJDk的默认虚拟机
2010年 Oracle收购了Sun
2011年 JDK7发布,正式启用G1垃圾回收器

5 虚拟机与Java虚拟机

Java虚拟机执行Java的字节码
Java虚拟机特点:

  1. 一次编译,到处运行
  2. 自动内存管理
  3. 自动垃圾回收功能

虚拟机位置在这里插入图片描述

6 JVM整体结构

在这里插入图片描述
方法区和堆是线程共享的
Java栈、本地方法栈、程序计数器是线程独享的
执行引擎:解释器,即时编译器和垃圾回收器

7 Java代码执行流程

Java源码(.java)—>
Java编译器(词法分析、语法分析、语义分析、字节码生成器)—>字节码(.class)—>
Java虚拟机(类加载器—>字节码校验器—>解释执行编译执行)—>操作系统

8 JVM的架构模型

基于栈的指令集架构

  • 设计简单
  • 指令多,指令集小
  • 可移植性好
  • 性能稍差

基于寄存器的指令集架构

  • 完全依赖硬件,可移植性差
  • 指令少,指令集大
  • 性能高效

9 JVM生命周期

启动
通过引导类加载器(bootstrap class loader)创建的初始类(initial class)完成,这个初始类是由虚拟机具体实现指定的
执行
执行一个Java程序时,执行的就是一个叫做Java虚拟机的进程
退出
程序结束时虚拟机退出

10 JVM的发展历程

  • 1996年 Sun Classic VM 世界上第一款商用虚拟机,只提供了解释器,用即时编译器的话需要外挂
  • Exact VM 热点探测,只针对热点代码即时编译;可以与即时解释器混用
  • 1997 HotSpot VM,JDK和OpenJDk的默认虚拟机都是HotSpot,方法区的概念只有HotSpot才有。
  •  热点代码探测技术,可即时编译也可栈上替换
    
  •  编译器和解释器可同时工作,相应时间和执行性能相平衡
    
  • BEA JRockit,专注于服务器端应用,不关注于程序响应时间,不包含解释器。世界上最快的JVM
  •  MissionControl,极低的开销来监控、管理和分析生产环境的工具
    
  • IBM J9,多用途VM,在IBM内性能较好
  • GRaal VM Oracle ,跨语言全栈虚拟机,任何语言的运行平台使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值