jvm
Java程序员-张凯
这个作者很懒,什么都没留下…
展开
-
JVM的类加载机制全面解析
什么是类加载机制JVM把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被JVM直接使用的Java类型,这就是JVM的类加载机制。类的生命周期类从被加载到内存中,到被卸载出内存,一共分为以下几步:加载(Loading) 验证(Verification) 准备(Preparation) 解析(Resolution) 初始化(Initia...转载 2019-12-04 08:59:40 · 1351 阅读 · 0 评论 -
JVM知识点总览
jvm 总体梳理jvm体系总体分四大块:类的加载机制 jvm内存结构 GC算法 垃圾回收 GC分析 命令调优当然这些知识点在之前的文章中都有详细的介绍,这里只做主干的梳理这里画了一个思维导图,将所有的知识点进行了陈列,因为图比较大可以点击右键下载了放大查看。公众号内回复:”jvm”,可查看大图。类的加载机制主要关注点:什么是类的加载 类的生命周期 类...原创 2018-08-23 17:24:11 · 500 阅读 · 0 评论 -
Java虚拟机内存管理
对于Java程序员来说,在虚拟机自动内存管理机制帮助下,不需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和溢出方面的问题。一旦出现内存泄漏和溢出问题,如果不了解虚拟机怎样使用内存的,那么排查错误将会成为一项异常艰难的工作。运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。根据《Java虚拟机规范(Java S...原创 2018-08-28 10:17:31 · 665 阅读 · 0 评论 -
Java虚拟机学习笔记整理
本文内容来源于《深入理解Java虚拟机》一书,非常推荐大家去看一下这本书。1、垃圾回收要解决的问题垃圾收集(Garbage Collection,GC),要设计一个GC,需要考虑解决下面三件事情:(1)哪些内存需要回收?(2)什么时候回收?(3)如何回收? 哪些内存需要回收?根据《Java内存区域模型、对象创建过程、常见OOM》中介绍的java内存模型,其中,程序计...原创 2018-08-21 07:40:49 · 389 阅读 · 0 评论 -
Java虚拟机 —— 垃圾回收机制
在Java虚拟机中,对象和数组的内存都是在堆中分配的,垃圾收集器主要回收的内存就是再堆内存中。如果在Java程序运行过程中,动态创建的对象或者数组没有及时得到回收,持续积累,最终堆内存就会被占满,导致OOM。JVM提供了一种垃圾回收机制,简称GC机制。通过GC机制,能够在运行过程中将堆中的垃圾对象不断回收,从而保证程序的正常运行。垃圾对象的判定我们都知道,所谓“垃圾”对象,就是指我们在...原创 2018-08-24 08:07:05 · 524 阅读 · 1 评论 -
思维导图学Java虚拟机
说明本篇文章是对周志明的《深入理解Java虚拟机》的读书笔记,思维导图使用Mindjet MindManager。曾经看到过这样一句话:关于教育,有一个经典的定义是:把在学校里学到的东西全部忘掉,最终留下的东西。我觉得读书也是一样,也可以套用上面的句式:关于读书,有一个经典的定义是:把在书中学到的东西全部忘掉,最终留下的东西。这次研读《深入理解Java虚拟机》,是为了对...原创 2018-08-29 09:04:19 · 435 阅读 · 0 评论 -
Java虚拟机学习笔记整理
一. JVM规范1.1 位运算1.1.1 整型int原码:第一位符号位,0为正,1为负 反码:符号位不动,原码取反 补码 正数补码:和源码相同 负数补码:符号位不动,反码加1 example-6原码: 10000110反码: 11111001补码: 11111010为何使用补码 可以无歧义地表示0 不使用补码,将0看为正数:0000 0000 ...原创 2018-08-30 09:24:02 · 672 阅读 · 0 评论 -
Java垃圾回收机制小结以及优化建议
Java的内存是不用我们开发者自己来管理的,这个大家都知道,但是那它到底是怎么运作的呢? 我们都知道GC,也就是垃圾回收机制,但到底什么是GC。 我们一起来看看。什么是GC垃圾回收是一种自动的存储管理机制。当一些被占用的内存不再需要时,就应该予以释放,以让出空间,这种存储资源管理,称为垃圾回收(garbage collection)。垃圾回收器可以让程序员减轻许多负担,也减少程序员犯错的机...原创 2018-10-27 19:12:35 · 654 阅读 · 0 评论 -
JVM内存模型详解
什么是JVM内存区域分区事实上,这个问题很简单。当JVM运行我们编写的代码时,它必须使用多个内存空间、不同的内存空间来放置不同的数据,然后与我们编写的代码流协作,这样我们的系统才能运行。例如,我们现在知道JVM将类加载到内存中以进行后续操作。所以我问你,这些类在被加载到内存之后会去哪里?你想过这个问题吗?所以在JVM中必须有一个内存区域来存储我们编写的类。包括我们定义的成员变量、类...原创 2019-07-28 13:55:16 · 1140 阅读 · 0 评论 -
Java虚拟机(JVM)你只要看这一篇就够了!
1. Java 内存区域与内存溢出异常1.1 运行时数据区域根据《Java 虚拟机规范(Java SE 7 版)》规定,Java 虚拟机所管理的内存如下图所示。 1.1.1 程序计数器内存空间小,线程私有。字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成如果线程正...原创 2018-08-23 08:18:46 · 845 阅读 · 0 评论 -
Java虚拟机(JVM)你只要看这一篇就够了!
1. Java 内存区域与内存溢出异常1.1 运行时数据区域根据《Java 虚拟机规范(Java SE 7 版)》规定,Java 虚拟机所管理的内存如下图所示。 1.1.1 程序计数器内存空间小,线程私有。字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成如果线程正...原创 2018-08-27 10:06:00 · 485 阅读 · 0 评论 -
Java虚拟机(JVM)你只要看这一篇就够了!
1. Java 内存区域与内存溢出异常1.1 运行时数据区域根据《Java 虚拟机规范(Java SE 7 版)》规定,Java 虚拟机所管理的内存如下图所示。1.1.1 程序计数器内存空间小,线程私有。字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成如果线程正...原创 2018-08-14 12:55:02 · 720842 阅读 · 123 评论 -
JVM知识点总览
jvm 总体梳理jvm体系总体分四大块:类的加载机制 jvm内存结构 GC算法 垃圾回收 GC分析 命令调优当然这些知识点在之前的文章中都有详细的介绍,这里只做主干的梳理这里画了一个思维导图,将所有的知识点进行了陈列,因为图比较大可以点击右键下载了放大查看。公众号内回复:”jvm”,可查看大图。类的加载机制主要关注点:什么是类的加载 类的生命周期 类...原创 2018-08-15 09:11:24 · 500 阅读 · 0 评论 -
Java虚拟机:什么是Java
前言让我们来看一下Java的广告词,来自http://www.java.com/zh_CN/about/: 97%的企业桌面运行Java 美国有89%的桌面(或计算机)运行Java 全球有900万Java开发人员 开发人员的头号选择 排名第一的部署平台 有30亿部移动电话运行Java 100%的蓝光盘播放器附带了Java ...原创 2018-08-13 10:47:49 · 339 阅读 · 0 评论 -
Java虚拟机:Java内存区域及对象
几个计算机的概念为以后写文章考虑,也为巩固自己的知识和一些基本概念,这里要理清楚几个计算机中的概念。1、计算机存储单位从小到大依次为位Bit、字节Byte、千字节KB、兆M、千兆GB、TB,相邻单位之间都是1024倍,1024为2的10次方,即: 1Byte = 8bit 1K = 1024Byte 1M = 1024K 1G = 1024M ...原创 2018-08-13 15:54:55 · 388 阅读 · 1 评论 -
Java虚拟机(JVM)学习之GC
谈到JVM,大家都知道GC(Garbage Collection),GC这个话题说浅了就一句话--JVM自动垃圾收集,说深了就无止尽了,回收算法,各种收集器,gc类型,gc触发点....等等,作者也是略懂皮毛,这里给大家推荐一个知乎上比较活跃的JVM大牛,RednaxelaFX,是专门做JVM开发的,业界号称"R大"。放个传送门:R大鉴于作者才学疏浅,这篇博文还是准备用通熟易懂的话把作者自己对G...原创 2018-08-18 16:33:24 · 446 阅读 · 0 评论 -
JVM总体概述
前言JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上一次编译,多次运行,具有跨平台性。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。...原创 2018-08-16 07:25:55 · 486 阅读 · 0 评论 -
思维导图学Java虚拟机
说明本篇文章是对周志明的《深入理解Java虚拟机》的读书笔记,思维导图使用Mindjet MindManager。曾经看到过这样一句话:关于教育,有一个经典的定义是:把在学校里学到的东西全部忘掉,最终留下的东西。我觉得读书也是一样,也可以套用上面的句式:关于读书,有一个经典的定义是:把在书中学到的东西全部忘掉,最终留下的东西。这次研读《深入理解Java虚拟机》,是为了对...原创 2018-08-22 11:57:04 · 398 阅读 · 0 评论 -
Java虚拟机 —— 类的加载机制
我们知道class文件中存储了类的描述信息和各种细节的数据,在运行Java程序时,虚拟机需要先将类的这些数据加载到内存中,并经过校验、转换、解析和初始化过后,最终形成可以直接使用的Java类型。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。其中验证、准备、解析3个部分统称为连接。类的生命周期 类的加载机...原创 2018-08-27 07:40:11 · 359 阅读 · 0 评论 -
什么是JVM?
说明:做java开发的几乎都知道jvm这个名词,但是由于jvm对实际的简单开发的来说关联的还是不多,一般工作个一两年(当然不包括爱学习的及专门做性能优化的什么的),很少有人能很好的去学习及理解什么是jvm,以及弄清楚jvm的工作原理,个人认为这块还是非常有必要去认真了解及学习的,特别是刚入门或入门不久的java开发来说,这是java的基石。JVM(Java Virtual Machine,Java...原创 2018-04-20 16:05:05 · 65116 阅读 · 11 评论