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
《深入理解Java虚拟机》
深入理解Java虚拟机
---(6)触发Full GC的条件
写在前面:前面两篇博客中介绍了GC的收集算法,和7种收集器的特点,而在这篇博客,我们会讨论什么情况下回触发一次FullGC。分代收集补充:在了解什么情况触发一次FullGC之前,我们先看一下JVM对象在内存区域中的年代划分。首先,我们知道GC收集器会根据回收对象的年龄,进行分代收集,如:MinorGC、MajorGC。MinorGC:新生代GC,指发生在新生代的垃圾收集动作,因为Java对象大多都
从_你的全世界路过
·
2018-03-22 14:33
深入理解Java虚拟机
深入理解Java虚拟机
深入学习Java虚拟机总结以Java虚拟机为平台进行程序设计的开发人员,很有必要对虚拟机的原理及工作机制进行深入的了解,该篇是学习周志明著
深入理解Java虚拟机
第2版的总结,主要分为以下几个方面:Java
路漫-其修远兮
·
2018-03-22 13:18
Java
JVM虚拟机
Java中的四种垃圾回收算法 -- 《
深入理解Java虚拟机
》
Java垃圾回收算法1.1标记-清除(Mark-Sweep)算法算法分为“标记”和“清除”两个阶段:首先标记处所有需要回收的对象,在标记完成后统一回收所有被标记的对象。它是最基础的收集算法,后续的收集算法都是基于这种思路并对其不足进行改进而得到的。它的不足主要有两个:效率问题,标记和清除两个过程的效率都不高。空间问题,标记清除后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中
曲健磊
·
2018-03-20 22:34
【深入JAVA虚拟机】
深入理解java虚拟机
文章转载自http://blog.csdn.net/u010425776/article/details/51170118JVM内存模型Java虚拟机(JavaVirtualMachine=JVM)的内存空间分为五个部分,分别是:1.程序计数器2.Java虚拟机栈3.本地方法栈4.堆5.方法区。下面对这五个区域展开深入的介绍。1.程序计数器1.1.什么是程序计数器?程序计数器是一块较小的内存空间,
sunsgne_AC
·
2018-03-19 18:32
java基础
Java程序员推荐阅读书籍
阅读更多《
深入理解Java虚拟机
:JVM高级特性与最佳实践》《
深入理解Java虚拟机
:JVM高级特性与最佳实践》作者是周志明,这本书可以说是国内写得最好的有关Java虚拟机的书籍,近半年,前前后后这本书我起码看了有
Lixh1986
·
2018-03-19 14:00
java
学习
Java程序员推荐阅读书籍
阅读更多《
深入理解Java虚拟机
:JVM高级特性与最佳实践》《
深入理解Java虚拟机
:JVM高级特性与最佳实践》作者是周志明,这本书可以说是国内写得最好的有关Java虚拟机的书籍,近半年,前前后后这本书我起码看了有
Lixh1986
·
2018-03-19 14:00
java
学习
为什么新生代内存需要有两个Survivor区?
熟悉GC算法的小伙伴应该都看过周志明老师的《
深入理解Java虚拟机
》这本书。因此,这里不再讨论这几种GC算法的区别,这里假设大家都已经有所了解,为了照顾遗忘的小伙伴,
Java后端技术
·
2018-03-19 00:00
Java中接口继承Object吗?
关于父类索引的知识,我是参考自《
深入理解Java虚拟机
》第二版6.3.4节。
tengfeixiaoao
·
2018-03-16 21:37
Java
Java
java开发者推荐的书
《
深入理解Java虚拟机
:JVM高级特性与最佳实践》《HotSpot实战》《java多线程编程核心技术》《EffectiveJava中文版》《深入分析JavaWeb技术内幕》《大型网站技术架构核心原理与案例分析
java知识社
·
2018-03-14 00:00
Java
2018年 应届毕业生 安卓开发工程师 求职准备
找实习找工作准备~~~~~~~~~不定期更新~~~~~JavaJVM系列文章ThreadPoolExecutorJava-线程池专题理解线程池的原理NIO《
深入理解Java虚拟机
》数据结构和算法红黑树KMP
蓝莲花wsg
·
2018-03-13 17:08
工作
JVM:Java内存区域和Java内存模型
第二遍看《
深入理解Java虚拟机
》了,代码的沉淀确实能对技术和理解带来一定影响。第一遍读这本书的时候感觉能看懂,但是抓不住重点,关键就记了下以下的概念:1.Java的内存区域。
gab25920hoih9l
·
2018-03-12 15:28
Java
多线程
JVM
关于Jvm知识看这一篇就够了
2016年左右的时候读了周志明《
深入理解Java虚拟机
:JVM高级特性与最佳实践》,读完之后受益匪浅,让我对Java虚拟机有了一个完整的认识,这是Jvm书籍中最好的读物之一。
微笑很纯洁
·
2018-03-11 10:31
JVM结构、GC工作机制详解
网上有很多关于GC和JVM的文章,这篇博文主要是根据我最近看《
深入理解Java虚拟机
》的一些体会总结出来的,希望对新手有些帮助
yunlielai
·
2018-03-07 10:10
JVM结构
GC工作机制详解
面试
《
深入理解java虚拟机
》笔记(二)----垃圾回收机制
1.内存回收java的运行时数据区分为方法区、堆、虚拟机栈、本地方法栈和程序计数器,内存回收关注的区域是java堆和方法区,回收的对象是已经"死去"的对象。2.判断对象的死亡引用计数法给对象添加一个引用计数器,有地方引用他,计数器加一,引用失效,计数器减一。计数器为0的对象判断为死亡的对象。但是java中没有采用引用计数法管理内存,理由是它很难解决对象循环引用的问题可达性分析算法java、C#等语
wtmxx
·
2018-03-05 17:03
深入理解java虚拟机
摘要(八)--JDK的可视化工具
深入理解java虚拟机
摘要二、虚拟机性能监控与故障处理工具1.JDK的可视化工具(一)JConsole:Java监视与管理控制台JConsole(JavaMonitoringandManagementConsole
王鹏的博客
·
2018-03-02 15:21
java虚拟机
深入理解JVM(1)——Java内存区域与Java对象
最近放暑假在家,没有实验室的工作要做,正好趁这个时间恶补了之前一知半解的JVM知识,使用的主要学习资料是周志明大大的《
深入理解Java虚拟机
——JVM高级特性与最佳实践》,我仔细拜读了两遍,结合一些优质博文以及论坛里的精彩解答
garfielder007
·
2018-02-28 22:54
JVM
JVM之内存区域划分
JVM之内存区域划分声明此篇文章是《
深入理解java虚拟机
》一书的搬运,并加一些自己的理解只为记忆与便捷。
Bug如风常伴吾身
·
2018-02-28 22:50
Java
JVM
《
深入理解java虚拟机
》笔记(一)----虚拟机类加载机制
1.什么是类加载虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。2.类加载生命周期image.png3.类加载过程区分"加载"和"类加载","加载"是类加载的一部分。加载阶段虚拟机需要做的事:通过一个类的全限定名来获取定义此类的二进制字节流将这个字节流所代表的静态存储结构转化为方法区运行时数据
wtmxx
·
2018-02-18 13:00
深入理解java虚拟机
之类的加载
Class文件最终都要加载到虚拟机中才能被使用,本文即介绍虚拟机的类加载过程;类加载的时机:虚拟机明确规范,有且只有5中情况会进行类的加载:1.使用new关键字实例化对象的时候,使用到类的静态变量的时候(被final修饰的静态变量除外),以及调用类的静态方法的时候;2.使用反射操作类的时候,如果类没有初始化,则先初始化类,3.如果初始化一个类,发现其父类没有初始化,则首先初始化父类,4.当虚拟机初
胃小
·
2018-02-13 12:09
java
java虚拟机
【
深入理解Java虚拟机
】类加载机制
本文内容来源于《
深入理解Java虚拟机
》一书,非常推荐大家去看一下这本书。
clypm
·
2018-02-08 08:54
JVM
深入理解Java虚拟机
《
深入理解Java虚拟机
》读书笔记9--线程安全与锁优化
线程安全线程安全,耳熟能详,但想准确的描述并不容易。这里借用《JavaConcurrencyInPractice》作者BrianGoetz对其的一个定义:“当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要额外的同步,或者再调用方法进行任何其他的协调操作,调用这个对象的行为就可以获得正确的结果,那这个对象是线程安全的”这个定义比较完整,它要求线程安全的代码需要具
虾_米_
·
2018-02-07 21:40
春节年货第二波:免费送书
《
深入理解Java虚拟机
》JVM领域排名第一的书籍,Java程序员必备。《敏捷软件开发》别被名字误导,这本书其实主要讲的是面向对象设计和编程。其中的薪水支付案例让我初步学会了面向对象设计。在OO
码农翻身
·
2018-02-07 15:22
java工程师转大数据工程师
第一阶段:01.Linux学习(跟鸟哥学就ok了)02.Java高级学习(《
深入理解Java虚拟机
》、《Java高并发实战》)第二阶段:03.Hadoop(董西成的书)04.HBase(《HBase权威指南
明明德撩码
·
2018-02-06 17:10
《
深入理解Java虚拟机
》——Java内存区域与内存溢出异常
程序计数器(ProgramCounterRegister):一块较小的内存空间,可看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,为了线程切换后能恢复到正确的执行位置,每条线程都有一
zxzhang
·
2018-02-03 20:00
JVM内存分配策略原
1、优先分配到edenpackage
深入理解java虚拟机
;publicclass对象优先分配到eden区{/***1M的内存大小*/privatestaticfinalint_1MB=1024*1024
风兮~
·
2018-01-31 23:51
java
se
深入理解java虚拟机
-JVM高级特性和最佳实现(一)——初识
每篇一叶Javaisageneral-purposecomputer-programminglanguagethatisconcurrent,class-based,object-oriented,andspecificallydesignedtohaveasfewimplementationdependenciesaspossible.Itisintendedtoletapplicationde
湖面的舟
·
2018-01-31 10:00
JVM:JVM 内存分区
(来自:《
深入理解Java虚拟机
》)1.程序计数器这是一块相对来说比较小的内存空间,它的作用是用来存储线程执行到哪个字节码的行号。程序运行时就是不断地执行字节码,不断地改变该空间中的存储的
mottohlm
·
2018-01-30 08:06
Java
《
深入理解Java虚拟机
》读书笔记8--Java内存模型与线程
在许多情况下,让计算机同时处理多个任务,不仅是因为计算机的处理能力太强大,另一个重要的原因是计算机的计算速度与它的存储和通信系统速度差距太大,大量时间被浪费在磁盘及网络IO上硬件效率与一致性虚拟机在处理并发时遇到的问题与物理机有不少类似,因此我们先来简单看一下物理机针对并发的处理方案由于计算机存储设备与计算速度之间有几个数量级的差距(即使内存也是如此),因此在内存与处理器之间,往往还有一层高速缓存
虾米_
·
2018-01-27 16:20
JVM
《
深入理解java虚拟机
-高效并发》读书笔记
《
深入理解java虚拟机
-高效并发》读书笔记Java内存模型与线程概述多任务处理在现代计算机操作系统中几乎已是一项必备的功能,多任务运行是压榨手段,就如windows一样,我们使劲的压榨它运行多个任务,
huangshulang1234
·
2018-01-26 10:19
并发
JVM虚拟机学习(一)---《
深入理解java虚拟机
:jvm高级特性与最佳实践 》读后总结
1.使用开源的openJDK,和商用的oracleJDK在性能、功能和执行逻辑上基本一致2.JDK中使用的jvm是HotSpot,项目结构见《
深入理解java虚拟机
:jvm高级特性与最佳实践》P343.
a502575632
·
2018-01-24 11:58
Jvm系列笔记总结
主要参考于国内权威相关书籍《
深入理解java虚拟机
高级特性》分以下模块总结Jvm笔记总结(一):Java内存区域概况Jvm笔记总结(二):垃圾收集策略Jvm笔记总结(三):常用垃圾收集算法Jvm笔记总结
请叫我晁盖_
·
2018-01-21 17:32
JAVA
深入理解java虚拟机
-java虚拟机的
一.主要了解java虚拟机的发展历史1.SunClassic/ExactVM(1)(ClassicVM世界上第一款商用的java虚拟机,JDK1.0版本当中使用的)(2)为提升效率,在Solaris平台发布ExactVM(JDK1.2之前使用的)2.SunHotSpotVM(使用最为广泛的虚拟机,但不是Sun公司设计的)(1)HotSpot指的就是热点代码探测技术(2)HotSpot是SunJDK
Reallycold
·
2018-01-18 21:08
JVM垃圾收集器与内存分配策略
本文是基于周志明的《
深入理解Java虚拟机
》堆中几乎存放着Java世界中所有的对象实例,垃圾收集器在对堆回收之前,第一件事情就是要确定这些对象哪些还“存活”着,哪些对象已经“死去”(即不可能再被任何途径使用的对象
qq_35661171
·
2018-01-13 10:57
JVM
Java并发之volatile
2.volatile的原理和实现机制下面这段话摘自《
深入理解Java虚拟机
》:“观察加入volatile关键字和没有加入vola
DengDeng_G
·
2018-01-11 16:04
Java关键字
Java并发
深入理解Java虚拟机
体系结构
1概述众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么。正是得益于Java虚拟机,它号称的“一次编译,到处运行”才能有所保障。1.1Java程序执行流程Java程序的执行依赖于编译环境和运行环境。源码代码转变成可执行的机器代码,由下面的流程完成:Java技术的核心就是Java
LeoLiang
·
2018-01-06 15:29
2018年Android开发读书清单与学习计划
17年读书清单疯狂JavaHeadFirstJava
深入理解Java虚拟机
HeadFirst设
bruce_lv
·
2018-01-05 16:07
规划
Android开发书单
10本Java书籍下载
《
深入理解Java虚拟机
》是近年来国内出版的唯一一本与Java虚拟机相关的专著,也是唯一一本同时从核心理论和实际运用这两个角度去探讨Java虚拟机的著作,不仅理论分析得透彻,而且书中包含的典型案例和最佳实践也极具现实指导意义
文章show
·
2018-01-04 10:50
深入理解Java虚拟机
学习笔记(一):自动内存管理机制
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,如下图所示:运行时数据区域程序计数器程序计数器是一块较小的内存空间,线程私有,它的主要特点:-作为当前线程所执行的字节码的行号指示器。-分支、循环、跳转、异常处理等基础功能都依赖这个计数器。-各条线程之间计数器互不影响,独立存储。-如果线程正执行的是Java方法,计数器记录的是字节码指令的地址,如果执行的是Nat
zhangjian_00
·
2018-01-04 10:09
java
虚拟机
深入理解JVM - 类文件结构
详细请阅读《
深入理解Java虚拟机
》第六章节。
json_it学习笔记
·
2018-01-02 14:19
Java
类文件
深入理解JVM
10本Java书籍推荐
《
深入理解Java虚拟机
》是近年来国内出版的唯一一本与Java虚拟机相关的专著,也是唯一一本同时从核心理论和实际运用这两个角度去探讨Java虚拟机的著作,不仅理论分析得透彻,而且书中包含的典型案例和最佳实践也极具现实指导意义
文章show
·
2018-01-01 19:00
《
深入理解Java虚拟机
》读书笔记2--垃圾收集(GC)与内存分配
垃圾收集(GarbageCollection,GC),其实主要需要完成3件事情:哪些内存需要回收?什么时候回收?如何回收?对于程序计数器、虚拟机栈以及本地方法栈,这三块内存区域是线程私有的,伴线程生,随线程死,并且每一个栈帧需要的内存在类结构确定后基本就确定了,因此对于这几块区域,内存的分配以及回收具备可确定性,当方法结束或者线程结束时,内存随之回收但是对于堆以及方法区,运行时才能确定需要创建哪些
虾米_
·
2017-12-30 10:06
Java
JVM
Java虚拟机
JVM
[
深入理解Java虚拟机
]虚拟机中的对象
对象的创建总结对象的内存布局总结对象的访问定位对象的创建当虚拟机遇到一条new指令时:1.首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析、和初始化过。如果没有,那必须先执行相应的类加载过程。2.在类加载检查通过后,接下来虚拟机将为新生对象分配内存,对象所需内存的大小在类加载完成后便可完全确定,为对象分配空间的任务等同于把一块确定大小
Vi_NSN
·
2017-12-26 22:42
JVM
读书笔记——《
深入理解Java虚拟机
》系列之类加载器与双亲委派模型
1.Java类加载器在Java中,类加载器是用来通过一个类的全限定名来获取描述此类的二进制字节流的代码模块。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性。换句话说,比较两个类是否相等,只有在这两个类是被同一个类加载器加载时才有意义,否则即使这两个类来源于同一个Class文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那么这两个类必定不相等。下面我们
Jesministrator
·
2017-12-26 16:44
Java虚拟机
深入理解Java虚拟机
ch13 线程安全和锁优化 读书笔记
part5高效并发 本部分是本书的最后一个部分,分两个章节。其中,第12章讲Java并发处理的基础——Java内存模型。从物理机模型出发,分析其设计思路和问题,引入Java内存模型以及其针对并发的设计细节。最后,说明了Java中多线程的实现,线程调度以及线程状态转换图。 第13章则是讲并发的正确性——线程安全和高效性——锁优化。正确性是前提,高效性是追求。本章的内容是建立在Java内存模型基础
wjp_seu
·
2017-12-25 13:11
Java
Java虚拟机
栈帧结构之局部变量表
背景摘自《
深入理解Java虚拟机
:JVM高级特性与最佳实践》(第2版)概述栈帧(StackFrame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(VirtualMachineStack
TuGeLe
·
2017-12-24 19:08
组内讲座
深入理解Java虚拟机
ch12 Java内存模型和线程 读书笔记
part5高效并发 本部分是本书的最后一个部分,分两个章节。其中,第12章讲Java并发处理的基础——Java内存模型。从物理机模型出发,分析其设计思路和问题,引入Java内存模型以及其针对并发的设计细节。最后,说明了Java中多线程的实现,线程调度以及线程状态转换图。 第13章则是讲并发的正确性——线程安全和高效性——锁优化。正确性是前提,高效性是追求。本章的内容是建立在Java内存模型基础
wjp_seu
·
2017-12-23 22:05
Java
Java虚拟机
深入理解Java虚拟机
- 字节码指令集
Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成。字节码与数据类型在Java虚拟机的指令集中,大多数的指令都包含了其操作所对应的数据类型信息。例如,iload指令用于从局部变量表中加载int型的数据到操作数栈中,而fload指令加载的则是float类型的数据。这两条指令的操作
麦田
·
2017-12-22 13:05
Java虚拟机
JAVA
深入理解Java虚拟机
深入理解java虚拟机
学习笔记(五)
第七章虚拟机类加载机制7.1概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析、初始化,最终形成可以直接被Java虚拟机使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,在Java语言里类型的加载、连接、初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Jav
Terisadeng
·
2017-12-22 08:18
Java
深入理解Java虚拟机
ch8 虚拟机字节码执行引擎 读书笔记
part3虚拟机执行子系统 本部分讲虚拟机的执行过程所涉及到的一些问题。这部分详细地说明了Java是如何实现平台无关的:JVM和字节码存储格式。通过设计一个统一的Class文件标准去存储字节码(JVM指令集,符号表及其他辅助信息),并制定规范进行语法和结构化约束,使用JVM的执行引擎去进行解释执行,最终实现平台无关。 虚拟机执行整个流程:首先,由编译器将java文件编译成Class文件,然后通
wjp_seu
·
2017-12-21 21:28
Java
笔记
Java虚拟机
深入理解Java虚拟机
ch7 虚拟机加载机制 读书笔记
part3虚拟机执行子系统 本部分讲虚拟机的执行过程所涉及到的一些问题。这部分详细地说明了Java是如何实现平台无关的:JVM和字节码存储格式。通过设计一个统一的Class文件标准去存储字节码(JVM指令集,符号表及其他辅助信息),并制定规范进行语法和结构化约束,使用JVM的执行引擎去进行解释执行,最终实现平台无关。 虚拟机执行整个流程:首先,由编译器将java文件编译成Class文件,然后通
wjp_seu
·
2017-12-20 22:42
Java
笔记
Java虚拟机
上一页
51
52
53
54
55
56
57
58
下一页
按字母分类:
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
其他