JVM深入学习(一)-JVM与JAVA体系结构

简介: JVM深入学习(一)-JVM与JAVA体系结构

Jvm的特点:

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


Jvm是跨平台,跨语言的


Jvm的位置

Jvm是一款程序虚拟机,区别于Vmvare这种系统虚拟机


1.1 jvm整体结构




  1. class文件由 类装载器子系统 加载初始化到内存中
  2. 运行时数据区中的方法区和堆是线程共享的,其他三个是每个线程都有各自的
  3. 执行引擎由编译器,JIT编译器,垃圾回收器组成


1.2 java代码的执行过程



  1. 源代码经过java编译器翻译成字节码
  2. jvm把字节码转换为机器能识别的机器码
  3. cpu执行代码


1.3 jvm架构模型


指令集架构分为两种


  1. 基于栈的指令集架构 (jvm)
  1. 设计实现简单,适用于资源受限的系统
  2. 零地址指令方式分配
  3. 指令集小
  4. 不需要硬件支持,移植性好,跨平台
  1. 基于寄存器的指令集架构
  1. 典型的应用 x86的二进制指令集,pc/android
  2. 基于寄存器,对于硬件耦合性较高,可移植性差
  3. 执行更加高效
  4. 指令更少
  5. 指令集大部分以一地址指令,二地址指令,三地址指令为主


1.4 jvm生命周期


  1. 启动
  1. 通过引导类加载器创建一个初始类,这个类具体由具体的虚拟机实现来确定
  1. 执行
  1. 执行java程序,当一个java程序被执行的时候,其实是jvm在执行
  1. 退出
  1. 程序正常执行结束
  2. 程序执行异常/错误而终止
  3. 操作系统出现异常
  4. 线程调用System/Runtime类中的exit/halt方法,且java安全管理器也允许操作


1.5 jvm各版本


  1. classic vm 最开始的vm
  2. exact vm 高性能vm的雏形,有了jit即时编译器
  3. HotSpot vm 现代的vm
  4. JRockit 没有解释器,只有JIT即时编译器,号称最快的vm,被oracle收购,整合到HotSpotVM
  5. J9 ibm的vm,也号称最快的vm,但是仅限于ibm自家的产品
  6. Graal vm 下一代vm 真正的跨语言vm
  7. TaobaoVm 淘宝基于hotSpot深度定制的vm,无法通用,对硬件有要求


目录
相关文章
|
26天前
|
监控 算法 Java
Java虚拟机(JVM)的垃圾回收机制深度解析####
本文深入探讨了Java虚拟机(JVM)的垃圾回收机制,旨在揭示其背后的工作原理与优化策略。我们将从垃圾回收的基本概念入手,逐步剖析标记-清除、复制算法、标记-整理等主流垃圾回收算法的原理与实现细节。通过对比不同算法的优缺点及适用场景,为开发者提供优化Java应用性能与内存管理的实践指南。 ####
|
18天前
|
监控 算法 Java
Java虚拟机(JVM)垃圾回收机制深度剖析与优化策略####
本文作为一篇技术性文章,深入探讨了Java虚拟机(JVM)中垃圾回收的工作原理,详细分析了标记-清除、复制算法、标记-压缩及分代收集等主流垃圾回收算法的特点和适用场景。通过实际案例,展示了不同GC(Garbage Collector)算法在应用中的表现差异,并针对大型应用提出了一系列优化策略,包括选择合适的GC算法、调整堆内存大小、并行与并发GC调优等,旨在帮助开发者更好地理解和优化Java应用的性能。 ####
25 0
|
15天前
|
存储 监控 算法
深入探索Java虚拟机(JVM)的内存管理机制
本文旨在为读者提供对Java虚拟机(JVM)内存管理机制的深入理解。通过详细解析JVM的内存结构、垃圾回收算法以及性能优化策略,本文不仅揭示了Java程序高效运行背后的原理,还为开发者提供了优化应用程序性能的实用技巧。不同于常规摘要仅概述文章大意,本文摘要将简要介绍JVM内存管理的关键点,为读者提供一个清晰的学习路线图。
|
17天前
|
存储 监控 算法
Java虚拟机(JVM)垃圾回收机制深度解析与优化策略####
本文旨在深入探讨Java虚拟机(JVM)的垃圾回收机制,揭示其工作原理、常见算法及参数调优方法。通过剖析垃圾回收的生命周期、内存区域划分以及GC日志分析,为开发者提供一套实用的JVM垃圾回收优化指南,助力提升Java应用的性能与稳定性。 ####
|
21天前
|
机器学习/深度学习 监控 算法
Java虚拟机(JVM)的垃圾回收机制深度剖析####
本文深入探讨Java虚拟机(JVM)的垃圾回收机制,揭示其工作原理、常见算法、性能调优策略及未来趋势。通过实例解析,为开发者提供优化Java应用性能的思路与方法。 ####
31 1
|
21天前
|
Oracle 安全 Java
深入理解Java生态:JDK与JVM的区分与协作
Java作为一种广泛使用的编程语言,其生态中有两个核心组件:JDK(Java Development Kit)和JVM(Java Virtual Machine)。本文将深入探讨这两个组件的区别、联系以及它们在Java开发和运行中的作用。
48 1
|
1月前
|
监控 Java 开发者
Java虚拟机(JVM)深度优化指南####
本文深入探讨了Java虚拟机(JVM)的工作原理及其性能优化策略,旨在帮助开发者通过理解JVM的内部机制来提升Java应用的运行效率。不同于传统的技术教程,本文采用案例分析与实战技巧相结合的方式,为读者揭示JVM调优的艺术。 ####
58 8
|
1月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
27天前
|
监控 算法 Java
深入理解Java虚拟机(JVM)的垃圾回收机制
【10月更文挑战第21天】 本文将带你深入了解Java虚拟机(JVM)的垃圾回收机制,包括它的工作原理、常见的垃圾收集算法以及如何优化JVM垃圾回收性能。通过本文,你将对JVM垃圾回收有一个全新的认识,并学会如何在实际开发中进行有效的调优。
41 0
|
5月前
|
存储 Java 程序员
Java面试题:方法区在JVM中存储什么内容?它与堆内存有何不同?
Java面试题:方法区在JVM中存储什么内容?它与堆内存有何不同?
80 10
下一篇
DataWorks