E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
--------JVM学习
深入理解
JVM学习
笔记(二十六、JVM 内存分配----优先分配到eden&空间分配担保)
一、优先分配到eden我们写一个程序来验证对象优先分配到eden,源码如下:packagecom.zjt.test.jvm008;publicclassMain{publicstaticvoidmain(String[]args){byte[]b1=newbyte[4*1024*1024];}}在运行main方法前进行如下配置,配置做用是让控制台显示JVM信息:运行结果如下图所示:从图中可以看出年
张--小涛涛
·
2018-11-10 17:28
JVM
jvm学习
之类加载过程详解
我们都知道一个java程序运行要经过编译和执行,但是这太概括了,中间还有很多步骤,今天来说说类加载学完类加载之后,java运行过程就可以分为编译》类加载》执行类加载主要是由jvm虚拟机负责的,过程非常复杂,类加载分三步加载》连接》初始化,(这里的加载和本文标题的类加载是不同的,标题的类加载包含了完整的三个步骤)下面详细说说每一步的过程1、加载:这个很简单,程序运行之前jvm会把编译完成的.clas
曼巴choi
·
2018-11-06 09:25
JVM
JVM学习
之1 GC日志理解
为了观察GC日志,我们需要设置JVM启动参数:-XX:+PrintGCDetails-----------------------------表示详细的GC日志的输出下面程序代码是我摘抄《深入理解JVM》这个本书上的一个示例;publicclassRefrenceCountingGC{publicObjectinstance=null;privatestaticfinalint_1MB=1024*
GoSaint
·
2018-11-02 16:46
JVM
JVM学习
总结
JVM是什么JVM就是java虚拟机,它是一个虚构出来的计算机,可在实际的计算机上模拟各种计算机的功能。JVM有自己完善的硬件结构,例如处理器、堆栈和寄存器等,还具有相应的指令系统。Java字节码是执行在JRE((JavaRuntimeEnvironmentJava运行时环境)上的。JRE中最重要的部分是Java虚拟机(JVM),JVM负责分析和执行Java字节码。JVM是java字节码执行的引擎
西京刀客
·
2018-10-24 19:43
Java后台
JVM学习
笔记(2) 垃圾收集器与内存分配策略
Java技术体系中所提倡的自动内存管理,最终可以规划为自动化地解决了两个问题:给对象分配内存、以及回收分配给对象的内存。一、回收内存:垃圾管理器(GC,GarbageCollector)关于G1收集器,详细的内容可以参照:详解JVMGarbageFirst(G1)垃圾收集器二、内存分配与回收策略对象的内存分配,往大方向讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配),
MustangJy
·
2018-10-23 17:40
JVM学习笔记
jvm学习
笔记(2)——java对象的内存布局
一、内存布局:一个java对象在内存中可分为3个区域:对象头(Header)、实例数据(InstanceData)、对齐填充(Padding)。对象头(两部分):对象自身运行时的数据。如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。类型指针。即对象指向它的类元数据的指针,虚拟机通过这个指针确定这个对象是哪个类的实例。对象的访问定位就是通过这个来确认的,如后面的图片所示
微笑浮沉
·
2018-10-19 13:36
jvm
JVM学习
笔记2:Java垃圾回收
原文链接:http://www.cnblogs.com/Zafkiel/p/9788682.html
JVM学习
笔记2:Java垃圾回收学习JVM,Java虚拟机对理解Java程序执行过程和Java程序性能调优具有很大帮助
Nier18988701708
·
2018-10-14 23:00
JVM学习
笔记1:Java虚拟机内存模型
原文链接:http://www.cnblogs.com/Zafkiel/p/9769805.html
JVM学习
笔记1:Java虚拟机内存模型学习JVM,Java虚拟机对理解Java程序执行过程和Java
Nier18988701708
·
2018-10-10 22:00
JVM学习
篇一:认识运行时数据区
运行时数据区什么是虚拟机虚拟机作用JVM,JDK,JRE关系jvm结构运行时数据区(RuntimeDataAreas)什么是虚拟机JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的
心如孤岛
·
2018-10-09 19:58
JVM
jvm学习
(三)之内存分配及回收策略
1,对象优先分配到新生代的Eden区大多数情况下,对象在新生代eden区中分配,当Eden区没有足够的空间分配,虚拟机将发起一次minorGC2,大对象直接进入老年代需要大量连续内存空间的Java对象称为大对象,大对象的出现会导致提前触发垃圾收集以获取更大的连续的空间来进行大对象的分配,JVM参数-XX:PretenureSizeThreshold的意思就是将体积大于这个设置值的对象直接在老年代分
banyr
·
2018-10-06 12:55
jvm
JVM学习
笔记(四)
(7)G1收集器G1收集器是当今收集器技术发展最前沿的成果之一,它被视为JDK1.7中HotSpot虚拟机的一个重要进化特征。G1是一款面向服务端应用的垃圾收集器,HotSpot开发团队赋予它的使命是替换掉CMS收集器,它的特点有:1)并行与并发:G1能充分利用CPU,多核环境下的硬件优势,使用多个CPU来缩短Stop-The-World停顿时间,部分其他收集器原本需要停顿Java线程执行的GC动
i-unique
·
2018-09-18 12:06
日志
Java学习
深入理解
JVM学习
笔记(二十四、JVM 垃圾回收机制---主流垃圾收集器介绍)
JAVA的跨平台性决定了其部署的服务器类型各异,其内存结构也是大不相同的。因此针对不同的内存结构适用于不同的垃圾收集策略。因此也需要各种各样的垃圾收集器来满足需求。接下来,我们介绍下市场上主流的几个垃圾收集器。一、Serial收集器特点:1、最基本、发展最悠久2、单线程垃圾收集器要理解单线程垃圾收集器,可以举例如下图所示。从图中我们可以看出,当JVM需要进行垃圾回收时候,需要将正在运行的所有线程全
张--小涛涛
·
2018-09-16 23:53
JVM
深入理解
JVM学习
笔记(二十三、JVM 垃圾回收机制---如何回收垃圾---回收策略【标记整理算法&分代收集算法】)
可能大家已经注意到了,前几节说的算法都是针对新生代的,那么本节我们来说说老年代的回收算法。老年代与新生代不同,我们之前提到过,新生代中大约有10%是不可被会收的对象。在老年代恰恰相反,只有大约10%的对象可以被回收。这中特点也就决定了老年代垃圾回收算法会和新生代不同。一、标记整理算法标记整理算法分为两步:(1)、标记标记过程与"标记-清除"算法一样;(2)、整理但后续不是直接对可回收对象进行清理,
张--小涛涛
·
2018-09-16 17:56
JVM
深入理解
JVM学习
笔记(二十二、JVM 垃圾回收机制---如何回收垃圾---回收策略【复制算法】)
上一节我们讲到了标记-清除算法因为需要进行两次内存扫描导致效率不高,那么这一节我们介绍一种复制算法,比较好的解决了这个问题。讲复制算法前,我们先回顾一下JVM的内存结构。JVM内存大体分为两大块,分别为线程共享区、线程独占区。其中线程共享区主要包括堆内存、方法区。线程独占区主要包括栈内存、本地方法栈、程序计数器。而我们垃圾回收主要针对的是线程共享区的堆内存。划重点,划重点,划重点。接下来将是本系列
张--小涛涛
·
2018-09-16 15:04
JVM
关于学习jvm的一些笔记
JVM学习
笔记一jvm作为Java的虚拟机,存于jre之下。是java能够实现跨平台的重要原因。JVM从软件层面屏蔽了底层硬件,指令层面的一些细节。JVM的运行时数据区将其分为数据和指令两个部分。
Vi_sener
·
2018-09-14 10:19
JVM
JAVA
深入理解
JVM学习
笔记(二十一、JVM 垃圾回收机制---如何回收垃圾---回收策略【标记-清除算法】)
标记-清除算法是GC中最基础的算法。从名称上看,其可以拆分为两部分:标记(mark)和清除(sweep)。此算法可以分为两个阶段,一个是标记阶段,一个是清除阶段,下面就分别做一下介绍。(1)标记阶段:在此阶段,垃圾回收器会从mutator(应用程序)根对象开始遍历。每一个可以从根对象访问到的对象都会被添加一个标识,于是这个对象就被标识为可到达对象。(2)清除阶段:在此阶段中,垃圾回收器,会对堆内存
张--小涛涛
·
2018-09-14 08:30
JVM
深入理解
JVM学习
笔记(二十、JVM 垃圾回收机制---如何判断对象是否为垃圾【可达性分析法】)
可达性分析法在主流的商用程序语言中(Java和C#),都是使用可达性分析算法判断对象是否存活的。这个算法的基本思路就是通过一系列名为GCRoots的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(ReferenceChain),当一个对象到GCRoots没有任何引用链相连时,则证明此对象是不可用的,下图对象object5,object6,object7虽然有互相判断,但它们到G
张--小涛涛
·
2018-09-13 08:59
JVM
深入理解
JVM学习
笔记(十九、JVM 垃圾回收机制---如何判断对象是否为垃圾【引用计数法】)
一、引用计数法引用计数算法作为垃圾收集器最早的算法,有其优势,也有其劣势,虽然现在的JVM都不再采用引用计数算法进行垃圾回收【例如Sun的Javahotspot采用了火车算法进行垃圾回收】,但这种算法也并未被淘汰,在著名的单进程高并发缓存Redis中依然采用这种算法来进行内存回收。直白一点,引用计数算法就是对于创建的每一个对象都有一个与之关联的计数器,这个计数器记录着该对象被使用的次数,垃圾收集器
张--小涛涛
·
2018-09-11 23:08
JVM
JVM学习
笔记(一)
最近在看《深入理解Java虚拟机》,第一章说是自己编写个JDK,看的云里雾里就跳掉了,两天马马虎虎才看完了第二章,下面是自己写的笔记。1.Java程序设计语言,Java虚拟机,JavaAPI类库这三部分统称为JDK(JavaDevelopment),JDK是用于支持Java程序开发的最小环境2.可以把JavaAPI类库中的JavaSEAPI子集和Java虚拟机这两部分统称为JRE(JavaRunt
i-unique
·
2018-09-08 11:55
日志
Java学习
JVM学习
笔记5-虚拟机类加载机制
摘自《深入理解Java虚拟机》第二版虚拟机类加载机制Java从代码到最终执行,一般需要两个过程:编译运行编译:把Java文件通过javac命令变异成字节码,也就是.class文件。运行:把编译好的.class文件交给JVM运行。这里说的类加载过程指的是JVM把.class文件中类信息加载进内存,并进行解析生成对应的class对象的过程。1类加载过程类加载过程主要分为三部分:加载连接(具体分为验证、
RunningHong
·
2018-09-07 22:01
java
学习笔记
JVM
JVM学习
笔记——垃圾收集器
原文链接:http://www.cnblogs.com/qbzf-Blog/p/9603568.htmltitle:
JVM学习
笔记——垃圾收集器date:2018/9/417:09:31description
weixin_30407099
·
2018-09-07 11:00
JVM学习
笔记4-垃圾回收之垃圾回收算法
摘自《深入理解Java虚拟机》第二版1垃圾回收算法1.1标记-清除算法算法分为两个阶段,标记和清除,首先标记出所有需要回收的对象,在标记完成后统一收回所有被标记的对象。该算法主要有连个不足:第一就是标记和清除的效率都不高;第二就是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。
RunningHong
·
2018-09-04 15:04
学习笔记
JVM
深入浅出JVM
深入浅出
JVM学习
笔记一.Java平台大致分为编译时环境和运行时环境两部分编译时环境:通过javacxxx.java命令启动java编译器,编译java源程序为xxx.class字节码运行时环境:通过本地
MrGeroge
·
2018-09-03 16:49
Java
【jvm】
jvm学习
第二篇。jvm运行机制
第二篇JVM运行机制1、jvm启动流程2、Jvm基本结构2.1、PC寄存器每个线程拥有一个PC寄存器在线程创建时创建指向下一条指令的地址执行本地方法时,PC的值为undefined2.2方法区保存装载的类信息类型的常量池字段、方法信息方法字节码通常和永久区关联在一起。2.3java堆和程序开发密切相关应用系统对象都保存在java堆中所有线程共享java堆对分代GC来说,对也是分代的。GC的主要工作
Jay-i
·
2018-09-03 11:44
【Java虚拟机领域】
【深入理解jvm】
JVM学习
笔记-类型擦除机制
java的泛型在编译阶段实现,,在运行期被删除。编译器生成的字节码在运行期间并不包含泛型的类型信息。泛型(Generic)的引入加强了参数类型的安全性,减少了类型的转换。问:有没有什么办法可以使集合能够记住集合内元素各类型,且能够达到只要编译时不出现问题,运行时就不会出现“java.lang.ClassCastException”异常呢?答:答案就是使用泛型。案例:importjava.util.
刹那芳华_未来
·
2018-08-29 17:15
JAVA
JVM
JVM学习
笔记-内存划分
一.jvm在程序执行中,会把内存划分为以下部分--线程共享区--1.java堆区--2.方法区--线程私有区(随着线程的消亡而消亡,不用过多考虑回收,编译时确认所需大小)--3.虚拟机栈--4.本地方法栈--5.程序计数器(其中抛出的各种异常如下:OutOfMemoryError:java堆,方法区,多线程时候虚拟机栈和本地方法栈StackOutFlowError:虚拟机栈,本地方法栈单线程运行时
刹那芳华_未来
·
2018-08-29 16:48
JAVA
JVM
JVM学习
笔记-类加载器和类加载机制
1.类加载器Classloader:每一次运行程序都会启动一个Java虚拟机,程序依靠jvm运行,jvm结束,程序结束.java虚拟机结束生命周期的情况:a.System.exit();b.程序正常结束c.程序异常或错误非正常退出d.操作系统错误导致虚拟机结束.类的加载,连接,初始化a.加载:查找并加载类的二进制数据class文件中的二进制数据从硬盘到内存中,将其存放到方法区中,然后堆区创建jav
刹那芳华_未来
·
2018-08-29 16:43
JAVA
JVM
JVM学习
笔记1-运行时数据区域
本文摘自《深入理解Java虚拟机》第二版1运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。如:方法区、虚拟机栈、本地方法栈、堆、程序计数器。1.1程序计数器(线程私有)程序计数器可以看做当前线程所执行字节码的行号指示器。在虚拟机的概念模型中,字节码指示器就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。程序计数器是线程私有的只有这样才能
RunningHong
·
2018-08-28 17:05
学习笔记
JVM
11_
JVM学习
笔记_字节码剖析
字节码剖析示例代码:packagecom.leofight.jvm.bytecode;publicclassMyTest1{privateinta=1;publicintgetA(){returna;}publicvoidsetA(inta){this.a=a;}}反编译信息如下:classesjavap-verbosecom.leofight.jvm.bytecode.MyTest1Classf
leofight
·
2018-08-19 22:14
JVM学习
(6)jvm如何判断垃圾
一.概述:垃圾回收的方法是判断没有个对象的可触及性,即从根节点开始是否可以访问到这个对象。如果访问到了,说明当前对象正在使用,如果从所以根节点都无法访问到某个对象,说明这个对象不再使用了。一般情况下,此对象要被回收。但是,一个无法触及的对象有可能在某一个条件下复活自己,那么对它回收就不合理了。因此,需要给出一个对象可触及性状态的定义,并规定在什么状态下,才可以安全回收对象。可触及性包括三种:1.可
陈阳001
·
2018-08-11 16:52
jvm启动模式之client与server
本人小白菜一枚,刚开始接触jvm,在此记录相关的
jvm学习
心得,后面会陆续记录,若有错误,还请大家多多指点。1.指定jvm启动模式jvm启动时,通过-server或-client参数指定启动模式。
小呆娃
·
2018-08-11 14:37
jvm
深入理解
JVM学习
笔记(十七、对象的访问定位)
之前我们理解java栈堆时可能会说栈中存储指针,指向堆中的对象地址。其实这种说法是不严谨的,其一是java中没有指针的概念,其二是栈中不一定存储对象的地址,也可能是其他地址。那么问题来了,对象是如何进行访问定位的呢。虚拟机栈是java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧(StackFrame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。局部变量表存放了编译期可知的各
张--小涛涛
·
2018-08-06 08:39
JVM
JVM学习
笔记二:GC
一、对象存活算法引用计数法(ReferenceCounting):给对象添加一个引用计数器,每当有一个地方引用它,计数器值就加1;每当引用失效时,计数器值减1;任何时刻计数器为0的对象就是不再被使用的。JVM没有选择此方法来管理内存,原因是无法解决对象之间的循环引用问题。可达性分析算法:使用“GCRoots”对象做为起点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,每当一个对象到GCRoo
坏蛋呆呆
·
2018-08-05 10:52
java
JVM学习
笔记一:JVM运行时数据区
最近重读周志明老师的《深入理解Java虚拟机》,结合网络参考资源和视频,对JVM加深了印象且又有一番新的理解,现总结如下(文章图片和内容参考《深入理解Java虚拟机》一书和网络资源,如有侵权请联系我处理).一、JVM运行时数据区程序计数器是一块较小的内存空间,可以看作当前线程所执行字节码的行号指示器。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,任何时刻,一个处理
坏蛋呆呆
·
2018-08-03 16:28
java
【
JVM学习
笔记】垃圾收集器
Serial收集器最基本,发展最悠久单线程垃圾收集器适用于桌面应用ParNew收集器与Serial收集器的区别是它是多线程的ParallelScavenge收集器复制算法(新生代收集器)多线程收集器达到可控制的吞吐量;吞吐量:CPU用于运行用户代码的时间与CPU消耗的总时间的比值吞吐量=(执行用户代码时间)/(执行用户代码的时间+垃圾回收所占用的时间)-XX:MaxGCPuaseMillis垃圾收
曾梦想仗剑走天涯XX
·
2018-08-02 14:08
Java
JVM
【
JVM学习
笔记】垃圾回收及算法
如何判定对象为垃圾对象?引用计数法可达性分析法如何回收?回收的策略:标记-清除算法、复制算法、标记-整理算法、分代收集算法垃圾回收器:Serial、Parnew、Cms、G1何时回收?引用计数算法在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值就+1,当引用失效的时候,计数器就-1。不用这种方式,可能会存在对象互相引用的情况,栈内的引用可以清除,但互相引用清楚不掉。运行程序时
曾梦想仗剑走天涯XX
·
2018-08-02 14:24
Java
JVM
jvm学习
笔记(一):内存模型
前段时间看了一点《深入理解jvm》,记下笔记,总结一下自己的理解内存模型黑色的部分(方法区和堆)为所有线程共享,白色部分(虚拟机栈、本地方法栈、pc计数器)为线程私有pc计数器学过计算机组成原理的应该对这个有印象。pc计数器存放的是计算机下一条指令的地址,计算机读取pc计数器中的值,依据这个值去指令寄存器读出下一条指令,然后执行。该区域为线程私有。虚拟机栈这块区域就是常说的栈。每个方法在执行的同时
Duncan_dsf
·
2018-07-31 12:45
jvm
学习jvm(一)--java内存区域
前言通过学习深入理解java虚拟机的教程,以及自己在网上的查询的资料,做一个对
jvm学习
过程中的小总结。本文章内容首先讲解java的内存分布区域,之后讲内存的分配原则以及内存的监控工具。
金发只是水一下
·
2018-07-28 17:00
JVM学习
资料收集
JVM学习
资料收集JVM实用参数(一)JVM类型以及编译器模式http://ifeve.com/useful-jvm-flags-part-1-jvm-types-and-compiler-modes-
ChengLc1612
·
2018-07-23 15:00
JVM学习
笔记3_类加载器
JVM类加载器分为四种:根类加载器(BootstrapClassLoader):加载JRE/lib/rt.jar或者Xbootclasspath选项指定的jar包,由C++实现,不是ClassLoader子类扩展类加载器(ExtensionClassLoader):加载JRE/lib/ext/*.jar或者-Djava.ext.dirs指定目录下的jar包系统类加载器(AppClassLoader
dcj199411
·
2018-07-14 19:00
JVM
JVM学习
之引用类型
Java引入类型强引用:当内存不足的时候,JVM宁可出现OutOfMemoryError,也不会将内存回收。强引用是JVM默认的支持模式,即:在引用期间,如果该堆内存被栈内存所指向,那么该对象无法被GC回收,如果出现内存空间不足,就会抛出“OutOfMemoryError”。publicstaticvoidmain(String[]args){Objecto=newObject();//强引用Ob
轻描淡写灬
·
2018-07-14 16:03
java
JVM
JVM学习
之G1回收器
G1收集器不区分年轻代或老年代,所有的堆内存就是一块。但是会划分出不同的子区域。虽然在G1收集器里面将整个内存区域都混合在了一起,但是其本身在小范围内依然进行了年轻代和老年代的区分,就是说依然会采用不同的GC策略来处理不同的内存域。G1回收流程:年轻代的处理流程1、先对内存空间进行子区域划分。2、对子区域中需要清理(包括一些满的,未满的子区域)的年轻代内存空间进行标记。3、对被标记的区域进行清空,
轻描淡写灬
·
2018-07-13 22:24
java
JVM
JVM学习
之GC流程和GC策略
GC流程对于GC流程里面需要处理的是年轻代和老年代的内存空间,而元空间(永久代)都不在GC范畴。1、现在有一个新对象产生,那么对象一定需要内存空间,于是现在需要为该对象进行内存空间的申请。2、首先会判断伊甸园区是否有内存空间,如果此时有充足内存空间,则直接将新对象保存到伊甸园区。3、但是如果此时伊甸园区的内存空间不足,那么会自动执行MinorGC操作,将伊甸园区无用的内存空间进行清理。清理之后会继
轻描淡写灬
·
2018-07-12 23:29
java
JVM
JVM学习
——Java内存区域及异常
1.JVM内存异常JVM自动内存管理机制包括内存动态分配和垃圾自动收集两部分,可能出现的异常包括内存泄漏和内存溢出两种。内存泄漏:已申请的内存空间无法被主动释放或垃圾回收,导致可用内存越来越少,最终造成内存溢出。内存溢出:空闲内存不足,无法满足程序的内存分配请求,产生原因包括内存供不应求、内存泄漏等。Java内存区域可用内存空间大小受物理硬件、操作系统和JVM虚拟机配置三个层次的制约:物理硬件:计
斵冰且行
·
2018-06-28 10:48
Java
知识梳理
JVM学习
(2)-类加载/卸载的日志跟踪
一.跟踪类加载的参数设置:java程序的运行离不开类的加载,为了更好的理解程序的执行,需要知道系统加载了哪些类。一般情况下,系统加载的类存在于文件系统中,以jar的形式或class文件的形式出现,可以直接查看。但是随着动态代理和AOP等技术的普遍使用,系统有可能在运行时动态的生成某些类,所以通过文件系统无法查看,这样跟踪类加载的参数设置就很有意义了。二.参数1.跟踪类的加载和卸载:-XX:+Tra
陈阳001
·
2018-06-23 13:29
JVM学习
笔记1_类加载与初始化
在java代码中,类型(class,interface,enum)的加载,连接,初始化过程都是在程序的运行期间完成的。类型的加载最常见的情况是将磁盘上的class文件加载到内存中。JVM与程序生命周期在如下几种情况下,JVM将结束生命周期:执行System.exit()方法程序正常结束程序在执行过程中遇到异常或错误而异常终止操作系统出现错误导致JVM进程终止类加载,连接,初始化顺序加载:查找并加载
dcj199411
·
2018-06-05 00:25
JVM
JVM学习
记录-线程安全与锁优化(二)
前言高效并发是程序员们写代码时一直所追求的,HotSpot虚拟机开发团队也为此付出了很多努力,为了在线程之间更高效地共享数据,以及解决竞争问题,HotSpot开发团队做出了各种锁的优化技术常见的有:自适应自旋锁(AdaptiveSpinning)、锁消除(LockElimination)、锁粗化(LockCoarsening)、轻量级锁(LightweightLocking)和偏向锁(Biased
纪莫
·
2018-06-04 23:00
JVM学习
记录-线程安全与锁优化(一)
前言线程:程序流执行的最小单元。线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。Java语言定义了5中线程状态,在任意一个时间点,一个线程只能有且只有其中的一种状态,5中状态如下。新建(New):创建后尚未启动的线程处于这种状态。运行(Runnable):Ru
纪莫
·
2018-06-02 19:00
深入理解
JVM学习
笔记(三、模拟内存溢出 内存监控方法)
模拟内存溢出一、新建java项目二、代码如下packagecom.zjt.test.jvm003;publicclassDemo{}packagecom.zjt.test.jvm003;importjava.util.ArrayList;publicclassMain{publicstaticvoidmain(String[]args){ArrayListarrayList=newArrayLis
张--小涛涛
·
2018-06-01 00:48
JVM
JVM学习
笔记---Java内存模型 与线程
12.1概述TPS:每秒事务处理数.12.2硬件的效率与一致性计算机的处理器运算速度和存储设备有几个数量级的差距,现代计算机系统加入一层读写速度尽可能接近处理器运算速度的高速缓存.高速缓存:将运算所需要的数据复制到缓存中,让运算快速进行.当运算结束后再从缓存同步到内存之中,这样处理器就不必等待缓慢的内存读写.缓存一致性:在多处理器系统中,每个处理器都有自己的高速缓存,而他们有共享同一主存.当多个处
virgosnails
·
2018-05-31 22:33
JVM
上一页
13
14
15
16
17
18
19
20
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他