tips:这几天面试,有几位面试官对虚拟机问的很深,觉得有必要抽出时间进行更详细和深入的学习。此贴作为《深入理解JAVA虚拟机》的读书笔记,持续更新。 第一部分  走进JAVAjdk和jre的区别:jdk是支持java程序开发的最小环境,jre是支持java程序运行的最小环境java虚拟机未来方向:希望java虚拟机能够管理数以GB的java堆,尽可能减少人工干预,能够自
本篇带来的是老师编写的《深入理解Java虚拟机:JVM高级特性与最佳实践》,十分硬核!全书共分为 5 部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM工作原理。全书整体5个部分,十三章,共 358929 字。整体结构相当清晰,以至于写读书笔记的时候无从摘抄(甚至想把全书复述一遍),以下是全书第三部分的内容,望读者细细品尝!一、
文章目录深入理解java虚拟机第三版)第一部分、Java的前世今生和未来展望1.1、概述1.2、java技术体系1.3、Java发展史(只记录比较重要的)1.4、Java虚拟机家族1.5、展望Java技术的未来1.6、自己动手编译JDK、IDE里面调试第二部分、自动内存管理2、Java内存区域与内存溢出异常2.2、虚拟机内存管理2.3、HotSpot虚拟机对象的探究(如何创建、布局、访问
一:JVM基础概念JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上
一、 概述Lisp是第一门开始使用内存动态分配和垃圾收集技术的语言,在胚胎时期时,其作者John McCarthy就思考过垃圾收集需要完成的三件事情:哪些内存需要回收?什么时候回收? 如何回收?在java中,Java堆和方法区这两个区域则有着很显著的不确定性:一个接口的多个实现类需要的内存可能会不一样,一个方法所执行的不同条件分支所需要的内存也可能不一样,只有处于运行期间,才能知道程序究竟会创建哪
javaEE开发已然是一个老生常谈的话题了,但经典之所以会成为经典,就是因为有可重复琢磨之处,每一次的反复推敲都会有不一样的收获。如果你不满足于做一个只会写if…else…的Java程序员,而是希望更进一步,我随便举几个例子吧:1、了解Java代码的底层运行机制2、定位性能问题3、对整个系统进行性能调优4、解决各种奇奇怪怪的线上线下问题5、更加高级别的,为自己的项目量身定做一款适合自己项目的虚拟机
jvm
转载 4月前
0阅读
书籍真的是常读常新,古人说「书读百遍其义自见」还是很有道理的。老师的这本《深入理解 Java 虚拟机》我细读了不下三遍,每一次阅读都有新的收获,每一次阅读对 Java 虚拟机的理解就更进一步。因而萌生了将读书笔记整理成文的想法,一是想检验下自己的学习成果,对学习内容进行一次系统性的复盘;二是给还没接触过这部好作品的同学推荐下,在阅读这部佳作之前能通过我的文章一窥书中的精华。原想着一篇文章就够
转载 9月前
58阅读
JVM最新发展  老师在2020年1月更新并发布了经典书《深入理解Java虚拟机》第三版,此版距第二版出版已过去七八年。在新书中,老师加入了许多JVM自JDK8以后出现的新特性与新概念。JVM虚拟机内存管理方面,也有所更新。   在此我略微整理了下书中的概念,并做了思维导图,供以后学习一、思维导图1. JVM内存区域2. 内存涉及概念3. JVM处理Java对象4. OutOfMemoryE
转载 9月前
88阅读
Java内存区域与内存溢出异常    Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。    本章从概念上介绍Java虚拟机内存的各个区域,讲解这些区域的作用、服务对象以及其中可能产生的问题,这也是翻越虚拟机内存管理这堵围墙的第一步。 2.1运行时数据区域2.2.1 程序计数器 
Java虚拟机Java程序运行的核心,它负责将Java源代码转化为可以在计算机上执行的机器码。在深入学习Java虚拟机的过程中,最经典的教材之一就是《深入Java虚拟机》第三版,作者是。 本文将以《深入Java虚拟机》第三版为参考,介绍Java虚拟机的基本概念和原理,并通过代码示例来说明。 ## 1. Java虚拟机的基本概念 Java虚拟机是一个运行Java字节码的虚拟计算机,它提
原创 2023-08-21 09:14:53
38阅读
1.主动学习单体架构防止陷入思维误区「单体架构是落后的系统架构风格,最终会被微服务所取代」其实都有一个没有明说的隐含定语:“大型的单体系统” 所以当我们在讨论单体系统的缺陷的时候,必须基于软件的性能需求超过了单机,软件的开发人员规模明显超过了“2个披萨原则”范畴的前提下,这样才有讨论的价值。在获得了进程内调用的简单、高效这些好处的同时,也就意味着,如果在单体架构中,有任何一部分的代码出现了缺陷,过
这是周志华教授关于深度学习的专访,值得静下心来看一看,寻找迷失的自己。导读 周志华教授是蜚声国内外的机器学习专家,也是本届中国人工智能大会的主席之一。他的《机器学习》2016年1月出版之后,迅速成为这个领域的一本权威教材,在一年半的时间里重印十几次,发行逾16万册,并被冠以“西瓜书”的昵称,成为这一轮 AI 热潮的一个重要注脚。周志华教授潜心学术,为人低调,极少接受采访。这次中国人工智能大会上,由
          概述一、走进虚拟机二、自动内存管理三、垃圾收集器与内存回收策略四、虚拟机性能监控、故障处理工具五、调优案例分析与实战六、类文件结构七、虚拟机类加载机制概述Java 技术系: Kotlin 、Clojure 、JRuby、Groovy 均是运行在 Java 虚拟机上的程序语言我们通常把Java 程序设计语言、Java虚拟机、Jav
转载 2023-08-17 17:50:34
0阅读
# 教你如何实现"Java" ## 1. 流程概述 首先,我们先来了解一下整个实现"Java"的流程。下面是一个简单的表格,展示了实现的步骤: | 步骤 | 操作 | | -------- | ----- | | 步骤一 | 创建一个Java项目 | | 步骤二 | 创建一个名为"Java"的类 | | 步骤三 | 添加一个main方法 | | 步骤四 | 在main方法中
原创 7月前
24阅读
# Java ## 引言 Java是一种广泛使用的计算机编程语言,由Sun Microsystems公司于1995年推出。Java语言有许多优点,如跨平台性、面向对象、简单易学等,因此它成为了目前应用最广泛的编程语言之一。在Java的学习和实践中,的书籍是非常受欢迎的。本文将介绍 Java这本书的主要内容,并通过代码示例展示其中的知识点。 ## 1. Java语言基础 Ja
原创 2023-09-18 10:08:27
56阅读
总述第1章分为两个部分:Java概述及自己动手编译JDK的教程。1 Java概述介绍了Java的整体特性、Java的技术体系组成、Java及JVM的发展史。1.1 Java的总体特性1)Java不仅仅是一门编程语言,更是由一系列计算机软件和规范组成的技术体系。2)Java具有众多优点:a.Java虚拟机在千差万别的物理机上建立了统一的运行平台,实现了跨平台性。(主要)b.提供了相对安全的内存管理和
转载 2023-07-20 15:33:26
54阅读
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》内容简介:第1版两年内印刷近10次,4家网上书店的评论近40000条,98%以上的评论全部为5星级的好评,是整个Java图书领域公认的经典著作和超级畅销书,繁体版在台湾也十分受欢迎。第2版在第1版的基础上做了很大的改进:根据最新的JDK 1.7对全书内容进行了全面的升级和补充;增加了大量处理各种常见JVM问题的技巧和最佳实践;增加了若干
目录前言1. 文章甜点2. 虚拟内存与物理内存3. JAVA类文件结构4. 虚拟机 类加载机制4.1类加载机制的生命周期4.1.1加载:4.1.2验证4.1.3准备4.1.4解析4.1.5初始化4.2双亲委任/双亲委派及破坏5. Java虚拟机运行时数据区5.1堆(堆主要用来放对象实例)5.2方法区5.3程序计数器(Program Counter Register)5
1.运行时数据区域 由上图可知,运行时的内存划分为线程共享的数据区和线程隔离的数据区。程序计数器:是一块较小的内存空间,它是当前线程所执行的字节码的行号指示器。字节码解释器通过改变这个计数器的值选取当前线程中下一条需要执行的字节码指令。Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式实现的,在一个确定的时刻一个处理器只执行一个线程中的指令,每个线程有一个独立的计数器,
  • 1
  • 2
  • 3
  • 4
  • 5