• 深入理解Java虚拟机到底是什么(转)

    时间:2023-11-19 11:51:59

    原文链接:http://blog.csdn.net/zhangjg_blog/article/details/20380971什么是Java虚拟机作为一个Java程序员,我们每天都在写Java代码,我们写的代码都是在一个叫做Java虚拟机的东西上执行的。但是如果要问什么是虚拟机,恐怕很多人就会模棱两...

  • 《深入理解Java虚拟机》第 3 版里面到底多了哪些知识点?本文竟然得到了本书作者的认可!

    时间:2023-11-19 11:50:55

    这是why的第 47 篇原创文章荒腔走板大家好,我是 why。老规矩,先是简短的荒腔走板聊聊生活。上面的图是前几天拍的,那天晚上下班后,刚刚走进小区就看到了这一轮弯月和旁边那一颗特别特别亮的星星。不知道为什么,一瞬间,我感觉一下回到了小时候的夏天。脑海里浮现出了一些画面:一个大铁勺子舀一勺透心凉的井...

  • 《深入理解Java虚拟机》虚拟机性能监控与故障处理工具

    时间:2023-11-19 11:50:16

    上节学习回顾从课本章节划分,《垃圾收集器》和《内存分配策略》这两篇随笔同属一章节,主要是从理论+实验的手段来讲解JVM的内存处理机制。好让我们对JVM运行机制有一个良好的概念,才能继续往下学习。本节学习重点本节主要是针对JVM内存管理机制的一些监控手段,例如堆情况使用的监控,线程栈情况的监控等。有几...

  • 重读《深入理解Java虚拟机》五、虚拟机如何执行字节码?程序方法如何被执行?虚拟机执行引擎的工作机制

    时间:2023-11-19 11:41:16

    Class文件二进制字符流通过类加载器和虚拟机加载到内存(方法区)完成在内存上的布局和初始化后,虚拟机字节码执行引擎就可以执行相关代码实现程序所定义的功能。虚拟机执行引擎执行的对象是方法(均特指非本地方法),方法是着一个程序所定义的一个功能的载体,实现预定的业务功能或者特定的功能等。虚拟机执行引擎就...

  • 深入理解java虚拟机(4)---类加载机制

    时间:2023-11-19 11:40:14

    类加载的过程包括:加载class到内存,数据校验,转换和解析,初始化,使用using和卸载unloading过程。除了解析阶段,其他过程的顺序是固定的。解析可以放在初始化之后,目的就是为了支持动态加载。从java开发者来讲,我们并不关心具体细节,只要知道整个流程以及每个流程大体干了那些事情。每个流程...

  • 深入理解Java虚拟机(一) 运行时数据区划分

    时间:2023-11-19 11:33:44

    前言:从我学Java的第一天开始,我的大学老师就告诉我 Java语言相比C、C++的语言有一个非常强大的功能,那就是自动内存管理;我们用Java编码时不需要申请或释放内存等,这些工作全部交由我们的Java虚拟机(以下简称JVM)来帮助我们管理。从那之后 ,我发现我们在写Java代码的就不需要去管理内...

  • 深入理解Java虚拟机之读书笔记二 垃圾收集器

    时间:2023-11-14 15:40:37

    1、对象已死?a、引用计数算法:缺点是它很难解决对象之间的相互循环引用的问题,Java语言中没有选用它。b、根搜索算法(GC Roots Tracing):通过一系列的名为“GC Roots”的对象作为起始点,开始向下搜索,走过的路径称为引用链,当一个对象没有任何引用链相连,表面此对象不可达。在Ja...

  • 《深入理解Java虚拟机》读书笔记二

    时间:2023-11-14 15:25:50

    第三章 垃圾收集器与内存分配策略1、判断对象是否已死引用计数法:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,每当引用失效时,计数器值就减1。任何时刻计数器为0的对象就是不可能再被使用的。引用计数器实现简单,判定效率高,但是无法解决对象相互循环引用。可达性分析:通过一系列称为GC...

  • 《深入理解java虚拟机》读书笔记二——第三章

    时间:2023-11-14 15:11:19

    第三章 垃圾收集器与内存分配策略1、判断对象是否已死引用计数法:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,每当引用失效时,计数器值就减1。任何时刻计数器为0的对象就是不可能再被使用的。引用计数器实现简单,判定效率高,但是无法解决对象相互循环引用。可达性分析:通过一系列称为GC...

  • 深入理解Java虚拟机(类加载机制)

    时间:2023-09-12 16:56:38

    文章首发于微信公众号:BaronTalk上一篇文章我们介绍了「类文件结构」,这一篇我们来看看虚拟机是如何加载类的。我们的源代码经过编译器编译成字节码之后,最终都需要加载到虚拟机之后才能运行。虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直...

  • 深入理解java虚拟机系列初篇(一):为什么要学习JVM?

    时间:2023-08-11 21:20:32

    前言本来想着关于写JVM这个专栏,直接写知识点干货的,但是想着还是有必要开篇讲一下为什么要学习JVM,这样的话让一些学习者心里有点底的感觉比较好...原因一:面试不得不说,随着互联网门槛越来越高,JVM知识也是中高级程序员阶段必问的一个话题!现在不像以前了,以前会点html都好找工作,现在由于学习软...

  • 深入理解Java虚拟机类加载机制

    时间:2023-07-18 16:00:19

    1.类加载时机对于类加载的第一个阶段—--加载,虚拟机没有强制的约束,但是对于初始化阶段,虚拟机强制规定有且只有以下的5中情况必须开始初始化,当然,加载、验证、准备阶段在初始化前就已经开始。①使用new关键字实例化对象的时候、读取或设置一个类的静态字段(被final修饰静态字段除外)的时候,以及调用...

  • 深入理解Java虚拟机---类加载机制(简略版)

    时间:2023-07-18 16:00:01

    类加载机制谈起类加载机制,在这里说个题外话,当初本人在学了两三个月的Java后,只了解了一些皮毛知识,就屁颠屁颠得去附近学校的招聘会去蹭蹭面试经验,和HR聊了一会后开始了技术面试,前抛出了两个简单的小问题铺垫了一下,然后接下来的问题就是简单的说一下类加载机制,听到这个问题,我脑子里面想到这个问题我看...

  • 《深入理解java虚拟机》读书笔记三——第四章

    时间:2023-06-03 22:04:24

    第四章 虚拟机性能监控与故障处理工具1、JDK命令行工具jps命令:作用:列出正在运行的虚拟机进程。格式:jps [option] [hostid]选项:-q 只输出LVMID(Local Virtual Machine Identifier)省略主类的名称。-m 输出虚拟机进程启动时传递给主类的m...

  • 深入理解 Java 虚拟机

    时间:2023-05-12 00:02:32

    Java 代码编译和执行的整个过程Java 代码编译是由 Java 源码编译器来完成,流程图如下所示:Java 字节码的执行是由 JVM 执行引擎来完成,流程图如下所示:Java 代码编译和执行的整个过程包含了以下三个重要的机制:Java 源码编译机制类加载机制类执行机制Java 源码编译机制Jav...

  • 《深入理解java虚拟机》第七章读书笔记——虚拟机类加载机制

    时间:2023-02-20 07:10:38

    系列文章目录和关于我一丶虚拟机类加载机制是什么java虚拟机将描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可用被虚拟机直接使用的java类型。二丶类加载时机1.什么时候会触发虚拟机的类类加载昵?遇到new(使用new关键字实例化对象),getstatic(读取...

  • 深入理解java虚拟机---读书笔记

    时间:2023-02-15 13:14:09

    第一章 走近java 1. java 技术体系: java 程序设计语言 各种硬件平台上的java虚拟机 class 文件格式 java API 类库 来自商业机构或者开源机构的第三方java类库 jdk(java development kit):java程...

  • 《深入理解Java虚拟机》读书笔记六

    时间:2023-02-15 13:09:50

    第七章 虚拟机类加载机制 1、类加载的时机 虚拟机的类加载机制: 虚拟机把描述类的数据从class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终形成了可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类从被加载到虚拟机内存中开始到卸载出内存为止,他的整个生命周期包括加载...

  • 《深入理解Java虚拟机》读书笔记八

    时间:2023-02-15 13:09:38

    第九章 类加载及执行子系统的案例与实战 Q:如果有10个WEB应用程序都是用Spring来进行组织管理的话,可以把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享。Spring要对用户程序的类进行管理,自然要能访问到用户程序的类,而用户程序显然是放在/WEB-I...

  • 深入理解Java虚拟机读书笔记

    时间:2023-02-15 13:09:32

    第2章Java内存区域与内存溢出异常 Java运行时数据区域 程序计数器(Program Counter Register) 一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。 虚拟机栈(VM Stack) 与程序计数器一样,Java虚拟机栈也是线程私有的,和线程的生命周期相同。虚...