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虚拟机
ch6 类文件结构 读书笔记
part3虚拟机执行子系统 本部分讲虚拟机的执行过程所涉及到的一些问题。这部分详细地说明了Java是如何实现平台无关的:JVM和字节码存储格式。通过设计一个统一的Class文件标准去存储字节码(JVM指令集,符号表及其他辅助信息),并制定规范进行语法和结构化约束,使用JVM的执行引擎去进行解释执行,最终实现平台无关。 虚拟机执行整个流程:首先,由编译器将java文件编译成Class文件,然后通
wjp_seu
·
2017-12-20 11:33
Java
笔记
Java虚拟机
JVM之新生代进入老年代
内存分配及回收策略——新生代如何进入老年代内容摘抄自周志明的《
深入理解Java虚拟机
2版》新生代GC(MinorGC)指发生在新生代的垃圾收集动作,因为Java对象大多都具备朝生夕灭的特性,所以MinorGC
手持两把锟金拷
·
2017-12-20 09:58
JVM读书笔记
深入理解Java虚拟机
- 类文件结构
无关性的基石各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石。实现语言无关性的基础仍然是虚拟机和字节码存储格式。Java虚拟机不和包括Java在内的任何语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集和符号表以及若干其他辅助信息。Class类文件的结构任何一个Class文件都对应着
麦田
·
2017-12-19 21:04
JAVA
Java虚拟机
深入理解Java虚拟机
深入理解java虚拟机
学习笔记(四)
第六章类文件结构6.1概述我们知道我们写的程序需要编译器翻译成由0和1构成的二进制格式文件才能被计算机执行。现在虚拟机以及建立在虚拟机之上的程序语言出现并蓬勃发展,将我们编写的程序编译成二进制本地机器码(NativeCode)已不再是唯一的选择,越来越多的程序语言选择了与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。6.2无关性的基石如果计算机的CPU指令集只有x86一种,操
Terisadeng
·
2017-12-19 19:28
Java
读书笔记——《
深入理解Java虚拟机
》系列之垃圾收集器与GC日志分析
在上一篇博客中,博主和大家一起学了几种常见的垃圾收集算法。我们也知道了分代收集法是目前虚拟机中常用的收集算法。收集算法可以被看作内存回收问题的理论基础,而不同的垃圾收集器就是内存回收的具体实现了。由于在Java虚拟机规范中并没有规定需要如何实现垃圾收集器,因此各个厂家或者不同版本的虚拟机所提供的垃圾收集器都有可能有很大的不同。下图是HotSpot虚拟机所提供的适用于不同年代的垃圾收集器,两个收集器
Jesministrator
·
2017-12-18 14:20
JavaGC
Java垃圾收集器
GC日志分析
串行垃圾收集器
并行垃圾收集器
Java虚拟机
不了解Java虚拟机的小伙伴看这一本书就够了!
关于这个问题,曾多次想写几篇文章给大家介绍一下,但是网络上关于Java虚拟机的内容大多是千篇一律,而基本都是来源于周志明的《
深入理解Java虚拟机
:JVM高级特性与最佳实践》一书,授人以
Java后端技术
·
2017-12-15 00:00
《
深入理解java虚拟机
》-第3章-垃圾收集器与内存分配策略
3.1概述哪些内存需要回收?什么时候回收?如何回收?java堆和方法区不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,我们只有在程序处于运行期间时才能知道会创建哪些对象,这部分内存的分配和回收都是动态的,垃圾收集器所关注的是这部分内存。我们讨论的“内存”分配与回收也仅指着一部分内存。3.2对象已死吗3.2.1引用计数算法给对象添加一个引用计数器,每当
csdn_kenneth
·
2017-12-14 18:31
JVM
深入理解Java虚拟机
之对象存活算法的实现
深入理解Java虚拟机
之对象存活算法的实现在之前的博客中提到过,判断对象是否存活的方式有两种,一种是标记计数法,一种是可达性分析算法,由于标记计数法不能解决循环引用的问题,所以大多数的虚拟机采用的都是可达性分析算法
Guoshi_Wan
·
2017-12-13 20:41
深入理解JVM
读书笔记——《
深入理解Java虚拟机
》系列之四种垃圾收集算法
垃圾收集算法一直都是影响GC工作效率的重要因素,在本篇博客中博主就与大家一起来学习一下几种经典的垃圾收集算法。由于它的实现涉及到了大量的程序细节,博主在这里就只用抽象的方式将垃圾收集算法的原理与大家分享啦。1.标记-清除算法标记-清除算法(Mark-Sweep)是垃圾收集算法中最基础的算法了,正如它的名字所示,这个算法主要分为两个阶段:“标记”与“清除”。大家回想一下我们在之前的博客中介绍的可达性
Jesministrator
·
2017-12-13 15:46
标记清除算法
复制算法
标记整理算法
分代收集算法
Java虚拟机
Java源码剖析——彻底搞懂Reference和ReferenceQueue
之前博主的一篇读书笔记——《
深入理解Java虚拟机
》系列之回收对象算法与四种引用类型博客中为大家介绍了Java中的四种引用类型,很多同学都希望能够对引用,还有不同类型引用的原理进行更深入的了解。
Jesministrator
·
2017-12-12 21:55
Java源码剖析
深入理解Java虚拟机
第二版学习笔记(一)
深入理解Java虚拟机
第二版学习笔记。第一章,走进Java。
lin-0410
·
2017-12-12 18:26
java开发
Java
&Android虚拟机
《
深入理解Java虚拟机
》学习笔记———对GC算法理解
《
深入理解Java虚拟机
》学习笔记———对GC算法理解在商用Java虚拟机中,由于不同对象存活周期不同,根据存活周期可以分为新生代和老年代,对新生代和老年代采用不同的垃圾回收算法,叫做分代回收算法。
danyi_
·
2017-12-12 00:18
学习笔记
深入理解Java虚拟机
(五)
虚拟机类加载机制概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载的时机类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initiali
NoSuchElementEx
·
2017-12-11 03:07
深入理解Java虚拟机
(四)
类文件结构代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。无关性的基石各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石。但在Java发展之初,设计者就曾经考虑过并实现了让其他语言运行在Java虚拟机之上的可能性,他们在发布规范文档的时候,也刻意把Java的规范拆分成了Java语言规范《TheJava
NoSuchElementEx
·
2017-12-11 03:32
深入理解Java虚拟机
- Java内存区域
运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(JavaSE7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示。程序计数器程序计数器:是一块较小的内存空间,它可
麦田
·
2017-12-10 23:51
JAVA
Java虚拟机
深入理解Java虚拟机
《
深入理解java虚拟机
》-目录结构
第一部分走进Java第1章走进Java第二部分自动内存管理机制第2章Java内存区域与内存溢出异常2.1概述2.2运行时数据区域2.2.1程序计数器2.2.2java虚拟机栈2.2.3本地方法栈2.2.4Java堆2.2.5方法区2.2.6运行时常量池2.2.7直接内存2.3HotSpot虚拟机对象探秘2.3.1对象的创建2.3.2对象的内存布局2.3.3对象的访问定位2.4实战:OutOfMem
csdn_kenneth
·
2017-12-07 21:10
JVM
JVM学习整理
本系列文章为《
深入理解Java虚拟机
》笔记,以备以后深入学习。
CY_Frank
·
2017-12-03 23:48
深入理解java虚拟机
(十一)-线程安全与锁优化
本文基于周志明的《
深入理解java虚拟机
JVM高级特性与最佳实践》所写。特此推荐。线程安全简单定义:如果一个对象可以安全地被多个线程同时使用,那它就是线程安全的。
阳光的技术小栈
·
2017-12-02 17:35
深入理解java虚拟机
(九)-运行期优化
本文基于周志明的《
深入理解java虚拟机
JVM高级特性与最佳实践》所写。特此推荐。“热点代码”(HotSpotCode):当虚拟机发现某个方法或代码块的运行特别频繁,就会把这些代码认定为“热点代码”。
阳光的技术小栈
·
2017-12-02 17:25
深入理解java虚拟机
(七)-虚拟机字节码执行引擎
本文基于周志明的《
深入理解java虚拟机
JVM高级特性与最佳实践》所写。特此推荐。运行时栈帧结构栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。
阳光的技术小栈
·
2017-12-02 17:15
深入理解Java虚拟机
ch3 垃圾回收器和内存分配策略 读书笔记
part2自动内存管理机制 本章接着上一章的内容继续讲。本章的内容分两块:垃圾收集器和内存分配和回收策略,也就是内存的分配和回收。章三垃圾收集器和内存分配策略 首先谈内存分配。上一章节提到,JVM运行时内存分为5个区域,其中程序计数器,虚拟机栈和本地方法栈这三个区域是线程私有的,随线程创建而分配,线程死亡而收回,无需特别管理。而方法区和Java堆中的内存分配和回收则较为复杂,尤其是Java堆,
wjp_seu
·
2017-11-30 23:47
Java
笔记
Java虚拟机
深入理解Java虚拟机
ch2 Java内存区域与内存溢出异常 读书笔记
part2自动内存管理机制 本书的第一部分主要是介绍部分,正文主要从本部分开始。本部分的核心内容如标题所示:自动内存管理机制。引用一段作者的话:Java与C++之间有一堵由动态内存分配和垃圾护手技术所围成的“高墙”,墙外面的人想出去,墙里面的人却想出来。 Java与C++最直观的区别就是:Java的内存是自动分配和回收的。一方面,这为内存管理提供了极大的便利性,不要像C++那样对每一片内存都悉
wjp_seu
·
2017-11-30 23:21
Java
Java虚拟机
java堆内存详解
http://www.importnew.com/14630.htmljava堆的特点《
深入理解java虚拟机
》是什么描述java堆的Java堆(JavaHeap)是java虚拟机所管理的内存中最大的一块
盛开的太阳
·
2017-11-30 14:00
深入理解Java虚拟机
之判断对象是否存活
深入理解Java虚拟机
之判断对象是否存活我们知道Java虚拟机中对象的存储位置在堆上,所以GC回收主要也就是在堆上进行的,那么垃圾收集器在进行对象回收的时候肯定不能随便收集,必须要判断对象的状态是不是可以被收集
Guoshi_Wan
·
2017-11-28 21:50
深入理解JVM
深入理解Java虚拟机
之对象的内存布局
深入理解Java虚拟机
之对象的内存布局对象在内存中的布局主要分为三块,对象头,实例数据和对齐填充。
Guoshi_Wan
·
2017-11-26 20:04
深入理解JVM
java语言类型
最近在看《
深入理解Java虚拟机
JVM高级特性与最佳实践》只是看了第一遍,这本书讲的东西都是很底层的东西,基础开发一般用不到,但是让我对Java语言有了很深刻的认识。
feigeswjtu
·
2017-11-25 15:44
Java
探索
深入理解java虚拟机
之线程安全与锁优化(8)
线程安全与锁优化1、线程安全BrianGoetz对线程安全比较恰当的定义:当多个线程访问一个对象时,如果不考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调度方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的。2、线程安全(Java语言中的线程安全)按照线程安全的“安全程度”由强至弱来排序,java里面各种操作共享的数据分为以下5类
powerfuler
·
2017-11-25 14:21
java虚拟机
JVM学习(一)——JAVA与JVM
从今天开始起,会坚持更新JVM相关的笔记、博客,以《
深入理解Java虚拟机
》学习,向作者致敬。
Keozzz
·
2017-11-25 13:33
JVM
深入理解JAVA虚拟机
---GC日志详解
1.编写JAVA代码importjava.util.ArrayList;importjava.util.List;/***-verbose:gc-Xms30M-Xmx30M-Xmn10M-XX:PermSize=200M-XX:MaxPermSize=200M-XX:+PrintGCDetails-XX:+PrintGCDateStamps-XX:SurvivorRatio=8*@authorAd
小李飞刀8
·
2017-11-23 00:00
java
《
深入理解Java虚拟机
》读书笔记2--垃圾收集(GC)与内存分配
垃圾收集(GarbageCollection,GC),其实主要需要完成3件事情:哪些内存需要回收?什么时候回收?如何回收?对于程序计数器、虚拟机栈以及本地方法栈,这三块内存区域是线程私有的,伴线程生,随线程死,并且每一个栈帧需要的内存在类结构确定后基本就确定了,因此对于这几块区域,内存的分配以及回收具备可确定性,当方法结束或者线程结束时,内存随之回收但是对于堆以及方法区,运行时才能确定需要创建哪些
虾_米_
·
2017-11-22 20:14
《
深入理解Java虚拟机
》——垃圾收集器与内存分配策略问题
通过这篇文章你能知道的问题:1.如何判断对象是活着还是死去?2.在Java语言中,可作为GCRoots的对象有哪些?3.Java中引用的分类4.对象的自救姿势是什么?5.类在什么情况下是无用的?6.垃圾收集算法有哪些?7.年轻代,老年代,永久代?8.HotSpot虚拟机是如何发起内存回收的?9.垃圾收集器有哪些以及组合方式有哪些?10.怎么理解GC日志?11.内存如何分配?该篇文章的篇幅会有点长,
beneke
·
2017-11-21 11:16
深入理解Java虚拟机
读书笔记
Java技术体系Java虚拟机Java虚拟机组成ClassLoaderNativeInterfaceExecutionEngineRuntimeDataAreaHotSpot虚拟机对象探秘对象的创建对象的内存布局对象的访问定位Java内存模型Synchronized关键字&java.util.concurrent包中的锁Java技术体系如果仅从传统意义上看,Sun官方所定义的Java技术体系包括了
Mr槑
·
2017-11-20 23:36
查看java字节码的工具(含IDEA插件)
在学习《
深入理解java虚拟机
》的类文件结构这一章的时候,通常要分析java字节码,提升自己的能力,有一款趁手的工具还是能事半功倍的。
乌枭
·
2017-11-17 15:36
java
深入理解java虚拟机
让我们来
深入理解java虚拟机
。【嵌牛正文】:世界上并没有完美的程序
lotus儿
·
2017-11-10 19:12
《
深入理解Java虚拟机
》的思维导图读书笔记
《
深入理解Java虚拟机
》的思维导图读书笔记作者:被称为L的男人原文链接:http://www.jianshu.com/p/ff4a1795e462本文为转载文章,原文请点击左下角查看,谢谢。
huangshulang1234
·
2017-11-09 10:51
Java基础
centos6.9 编译openJdk源码
仿照《
深入理解Java虚拟机
:JVM高级特性与最佳实践》编译openJdk源码Linux系统CentOSrelease6.9(Final)Kernel\ronan\mBootstrapJDKjava-1.6.0
gomeplus
·
2017-11-02 22:34
类加载原理分析&动态加载Jar/Dex
JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,如下图:Paste_Image.png由于本文主要讲解的是类的加载部分,所以加载,验证,准备,解析,初始化仅仅作下简单的回顾,详细内容参阅《
深入理解
编程之乐
·
2017-10-31 22:39
深入理解Java虚拟机
随笔之运行时数据区
Java虚拟机运行时数据区分为程序计数器、虚拟机栈、本地方法栈、堆和方法区(前三个线程私有,后两个线程共享)。1.程序计数器程序计数器是一块较小的内存空间。可看做当前程序所执行的字节码的行号指示器。在虚拟机的概念模型(注意只是概念模型,因为虚拟机可能通过一些更高效的方式去实现)中,字节码解释器通过程序计数器来选取下一条需要执行的字节码指令。此外,分支循环跳转异常处理线程恢复等基础功能都需要依赖程序
灥灥
·
2017-10-29 14:51
学习随笔
《
深入理解java虚拟机
》学习笔记(4)--虚拟机类加载机制
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。在Java中,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但却为java程序提供了高度的灵活性。类的生命周期类从加载到虚拟机内存开始,到卸载出内存为止,生命期分为:加载(Loading)、验
halfclear
·
2017-10-26 16:01
java
深入理解JAVA虚拟机
---JAVA虚拟机的内存划分
JAVA虚拟机的内存划分1、程序计数器当前线程所有的字节码的行号指示器,是线程独有的一块内存。2、JAVA虚拟机栈线程私有的,用于存放局部变量表、操作栈、动态链接、方法出口等。3、本地方法栈存放本地方法中变量的内存区域。4、方法区各个线程共享的内存区域,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。一般使用永久代来实现方法区。5、JAVA堆JAVA堆被所有的线程共享
小李飞刀8
·
2017-10-24 23:40
JAVA
虚拟机
内存划分
java
Java对象访问过程
这篇文章简单介绍一下Java对象访问过程(参考周志明老师的《
深入理解java虚拟机
》)Java中的对象访问过程会涉及到栈、堆、方法区这三个内存区域下面以一段代码进行说明:Objectobj=newObject
Alvin_blog
·
2017-10-22 22:36
Java
驿站
深入理解java虚拟机
-第四章:虚拟机类加载机制
一、类的生命周期a)生命周期:类从被加载到虚拟机中开始,到卸载出虚拟机为止。b)各个阶段注:上图是类加载的各个阶段,绿框这5个阶段顺序是确定的,类加载的过程必须按照这个阶段开始(注意是开始,不是进行,各个阶段在进行时存在相互交叉混合的情况)1)加载:虚拟机没有强制约束何时开始。在此阶段,虚拟机完成三件事:通过一个类的全限定名来获取定义此类的二进制字节流。将这个流所代表的静态存储结构转变为方法区的运
麦子小小跑
·
2017-10-21 19:40
JVM
JVM结构、GC工作机制详解
网上有很多关于GC和JVM的文章,这篇博文是作者根据《
深入理解Java虚拟机
》的一些体会总结出来的,希望对新手有些帮助。传送门http://blog
爱码士
·
2017-10-17 10:40
JVM读书笔记之JVM简介
Java语言的深入学习必然会涉及到JVM,今日人们对程序的运行效率与容错率要求日益增高,因此面对项目调优,处理程序内存等问题,需要我们不但
深入理解Java虚拟机
各个部分与原理,还要我们熟练使用JVM性能监控与故障处理工具
ghostWARDEN
·
2017-10-16 14:05
Java
JVM
学习
深入理解java虚拟机
笔记--对象已死吗
在堆里面存放着java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经"死去"(即不可能再被任何途径使用的对象)。1.引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。引用计数算法实现简单,判定效率也很高。但是主流的java虚拟机
zsc我行我素
·
2017-10-15 09:27
java
java学习笔记之: JVM一:内存
写在前头:看书入门,java玩了这么久了,也没仔细研究下这种重要的基础部分,最近抽空在看”
深入理解java虚拟机
JVM高级特性与最佳实践“,写点学习总结;一.内存结构a.我们常说java内存结构=堆+栈
文青_周
·
2017-10-14 17:20
java学习笔记
JVM
《
深入理解java虚拟机
》之Java类加载机制
JSONCode12345678910111213141516171819202122Java类加载的全过程1、加载>>将class文件放入内存,并将静态的二进制代码转换成方法区中运行时的数据结构(在方法区进行)并产生一个java.lang.Class(位于堆中)比如说现在有一个T.java的文件,使用命令行javacT.java将.java文件编译为.class文件,在程序中使用到T这个类时,类
lyzx_in_csdn
·
2017-10-13 10:35
JVM
java jvm 类加载机制 双亲委派模型
图来自
深入理解java虚拟机
类先由父类加载器加载,如果父类加载器加载不了,再尝试子类加载。为什么这样?
oqiuqian
·
2017-10-11 12:10
jvm
虚拟机
类加载机制
双亲委派模型
java
jvm
类加载机制
双亲委派模型
Java虚拟机:类加载
前言最近在学习周志明老师的《
深入理解Java虚拟机
:JVM高级特性与最佳实践》,在博客上查找补充资料时发现一个相关的很有趣的例子。
ecjtusbs
·
2017-10-04 19:00
学习笔记
基础
2017.9技术生活总结
暑假里主要做了如下事情(7-8月,大二下暑假,已完成目标):1.学习了《
深入理解Java虚拟机
》,因第一遍阅读所以采用快速阅读法。
词汇族
·
2017-09-30 23:47
生活与规划
上一页
52
53
54
55
56
57
58
59
下一页
按字母分类:
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
其他