【JVM】深入理解虚拟机(上)

简介: 【JVM】深入理解虚拟机(上)

想要学好Java,对Java虚拟机的学习是不可或缺的,本文就来初步的介绍一下虚拟机,了解虚拟机到底是什么样的存在

二话不说先上图

概念解释

自动内存管理机制:Java讲内存控制的权力交给了虚拟机,由虚拟机来解决编码时所需的内存管理需求,从而实现内存管理自动化的机制。这个机制也是程序一旦出现内存泄漏和溢出的问题时,平时不了解虚拟机的程序员,排查错误将异常困难。

虚拟机执行子系统:

执行子系统是虚拟机必不可少的一部分,其过程由编译class文件、类加载过程、虚拟机字节码执行引擎组成。

程序编译和优化: java程序从源码编译成字节码,再从字节码编译成本地机器码即传统编译器的编译过程,优化也是从这两个部分开始的。

高效并发: java天生适合多线程,高效并发是JVM学习的重要部分

什么是JVM

虚拟机

首先说说什么是虚拟机吧,虚拟机(Virtual Machine)就是一台虚拟的主机,实质上是一款软件,可以用来执行一系列虚拟计算机执行,分为系统虚拟机和程序虚拟机,而Java虚拟机就属于程序虚拟机,它专门为执行单个计算机程序而设计

Java虚拟机

Java虚拟机是一台执行Java字节码的虚拟计算机,他拥有独立的运行机制,其中运行的Java字节码也不一定是有Java编译

JVM平台的各种语言都可以共享JVM的福利,现在java虚拟机已经不再为java一家服务。

Java技术的核心就是Java虚拟机,所有java程序都运行在java虚拟机内部

JVM内存结构

根据JVM规范,JVM内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分

  1. 虚拟机栈
    线程私有,每个方法在执行的时候会创建一个栈帧,存储了局部变量表,操作数栈,动态链接,方法返回地址等

  2. 线程共享,被所有线程共享的一块内存区域,在虚拟机启动时创建,用于存放对象实例
  3. 方法区
    线程共享;被所有线程共享的一块内存区域,用于存储已被虚拟机加载的类信息,常量,静态变量等。
  4. 程序计数器
    线程私有,使当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这类内存也被称为线程私有的内存
  5. 本地方法栈
    线程私有,主要为虚拟机使用到的Native方法服务。

JVM运行过程

由编译的xxx.java源码通过Java编译器的词法分析、语法分析、语义分析、字节码生成器等过程生成xxx.class字节码文件,然后通过类加载器从文件系统或网络中加载Class文件,通过一系列诸如验证、初始化等过程,存放到内存中的方法区,由虚拟机字节码执行引擎执行代码,输入字节码文件,通过字节码解析输出执行结果。

本文主要参考该书:

另:本文有些内容属于JDK1.7,在jdk1.8中,常量池已经挪到了堆中,请注意。

目录
相关文章
|
3月前
|
监控 算法 Java
Java虚拟机(JVM)的垃圾回收机制深度解析####
本文深入探讨了Java虚拟机(JVM)的垃圾回收机制,旨在揭示其背后的工作原理与优化策略。我们将从垃圾回收的基本概念入手,逐步剖析标记-清除、复制算法、标记-整理等主流垃圾回收算法的原理与实现细节。通过对比不同算法的优缺点及适用场景,为开发者提供优化Java应用性能与内存管理的实践指南。 ####
|
2月前
|
监控 算法 Java
Java虚拟机(JVM)垃圾回收机制深度剖析与优化策略####
本文作为一篇技术性文章,深入探讨了Java虚拟机(JVM)中垃圾回收的工作原理,详细分析了标记-清除、复制算法、标记-压缩及分代收集等主流垃圾回收算法的特点和适用场景。通过实际案例,展示了不同GC(Garbage Collector)算法在应用中的表现差异,并针对大型应用提出了一系列优化策略,包括选择合适的GC算法、调整堆内存大小、并行与并发GC调优等,旨在帮助开发者更好地理解和优化Java应用的性能。 ####
71 0
|
2月前
|
存储 监控 算法
深入探索Java虚拟机(JVM)的内存管理机制
本文旨在为读者提供对Java虚拟机(JVM)内存管理机制的深入理解。通过详细解析JVM的内存结构、垃圾回收算法以及性能优化策略,本文不仅揭示了Java程序高效运行背后的原理,还为开发者提供了优化应用程序性能的实用技巧。不同于常规摘要仅概述文章大意,本文摘要将简要介绍JVM内存管理的关键点,为读者提供一个清晰的学习路线图。
|
2月前
|
存储 监控 算法
Java虚拟机(JVM)垃圾回收机制深度解析与优化策略####
本文旨在深入探讨Java虚拟机(JVM)的垃圾回收机制,揭示其工作原理、常见算法及参数调优方法。通过剖析垃圾回收的生命周期、内存区域划分以及GC日志分析,为开发者提供一套实用的JVM垃圾回收优化指南,助力提升Java应用的性能与稳定性。 ####
|
3月前
|
机器学习/深度学习 监控 算法
Java虚拟机(JVM)的垃圾回收机制深度剖析####
本文深入探讨Java虚拟机(JVM)的垃圾回收机制,揭示其工作原理、常见算法、性能调优策略及未来趋势。通过实例解析,为开发者提供优化Java应用性能的思路与方法。 ####
76 1
|
3月前
|
监控 Java 开发者
Java虚拟机(JVM)深度优化指南####
本文深入探讨了Java虚拟机(JVM)的工作原理及其性能优化策略,旨在帮助开发者通过理解JVM的内部机制来提升Java应用的运行效率。不同于传统的技术教程,本文采用案例分析与实战技巧相结合的方式,为读者揭示JVM调优的艺术。 ####
86 8
|
4月前
|
Java
jvm复习,深入理解java虚拟机一:运行时数据区域
这篇文章深入探讨了Java虚拟机的运行时数据区域,包括程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、元空间和运行时常量池,并讨论了它们的作用、特点以及与垃圾回收的关系。
84 19
jvm复习,深入理解java虚拟机一:运行时数据区域
|
4月前
|
存储 算法 Java
Java虚拟机(JVM)的内存管理与性能优化
本文深入探讨了Java虚拟机(JVM)的内存管理机制,包括堆、栈、方法区等关键区域的功能与作用。通过分析垃圾回收算法和调优策略,旨在帮助开发者理解如何有效提升Java应用的性能。文章采用通俗易懂的语言,结合具体实例,使读者能够轻松掌握复杂的内存管理概念,并应用于实际开发中。
|
3月前
|
监控 算法 Java
深入理解Java虚拟机(JVM)的垃圾回收机制
【10月更文挑战第21天】 本文将带你深入了解Java虚拟机(JVM)的垃圾回收机制,包括它的工作原理、常见的垃圾收集算法以及如何优化JVM垃圾回收性能。通过本文,你将对JVM垃圾回收有一个全新的认识,并学会如何在实际开发中进行有效的调优。
88 0
|
4月前
|
存储 算法 Java
深入理解Java虚拟机(JVM)及其优化策略
【10月更文挑战第10天】深入理解Java虚拟机(JVM)及其优化策略
66 1

热门文章

最新文章