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虚拟机》
JVM笔记03-JVM垃圾回收
0.前言JVM笔记系列,以JDK1.7为基准,主要以《
深入理解Java虚拟机
》(第二版)和《Java虚拟机规范(JavaSE7版)》为参考,主要包括下图所示的五部分内容:1.类加载,2.内存区域,3.垃圾回收
郭寻抚
·
2017-09-30 09:10
JVM——深入解析原理和运行机制(一)类加载过程
隔了好久终于把这篇文章补上了,最近在看《
深入理解Java虚拟机
》,一本很不错的书,必须值得一看。
笑破苍穹
·
2017-09-28 21:46
java
深入理解Java虚拟机
-内存区域
运行时数据区域程序计数器(ProgramCounterRegister)程序计数器是一块很小的内存空间,它可以看作是当前线程执行的字节码的行号指示器。如果线程执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,则这个计数器值则为空。程序计数器是Java虚拟机规范中唯一一个没有OutOfMemoryError的内存区域。线程私有的概念:Ja
那些年未曾努力过
·
2017-09-27 16:35
本地方法栈及native方法
最近开始看《
深入理解Java虚拟机
》,确实是本宝书。看到虚拟机栈和本地方法栈的区别的时候有点疑惑,因为本地方法栈为虚拟机的Native方法服务。
、JCoding
·
2017-09-26 11:06
JVM
JVM
分代收集算法详解
此篇文章较多借鉴《
深入理解Java虚拟机
》前提概要这篇文章算是对前一篇文章的一个补充,主要地讲一下涉及知识点较多的分代收集算法。
许佳佳233
·
2017-09-24 09:51
【Java】
分代收集算法详解
此篇文章较多借鉴《
深入理解Java虚拟机
》前提概要这篇文章算是对前一篇文章的一个补充,主要地讲一下涉及知识点较多的分代收集算法。
许佳佳233
·
2017-09-24 09:51
【Java】
深入理解java虚拟机
读书笔记,第十二章:Java内存模型与线程
12.1概述衡量一个服务端的好坏,每秒事物处理数(TransactionsPersecond,TPS)是最重要的指标之一12.2硬件的效率与一致性基于高速缓存的存储交互很好的解决了处理器与内存的速度矛盾,但是也为计算机系统带来了更高的复杂性,引入了新的问题:缓存一致性为了使处理器内部运算单元尽量充分利用,处理器会对输入代码乱序执行优化Java虚拟机的即时编译器中也有类似的指令重排序优化12.3Ja
cremin
·
2017-09-21 14:07
hotspot虚拟机中java对象的分配与布局和访问
本文是对虚拟机学习的个人总结,参考了
深入理解java虚拟机
一书,如果有不正确的地方欢迎指正1.对象的在虚拟机中的分配①虚拟中对象的创建,当虚拟机收到一条new指令的时候,会在常量池中找到这个类的引用,并且会检查这个类是否被加载
TristeanZ
·
2017-09-20 22:26
深入理解java虚拟机
读书笔记,第十章:早期(编译器)优化
10.1概述Java语言的“编译期”其实是个“不确定”的过程:前端编译器:把Java文件编译成class文件,例如Sun的javac、EclipseJDT中的增量编译器(ECJ)后端编译器(JIT编译器,justintimecompiler):把字节码转换为机器码,例如HotSpotVM的C1、C2编译器静态提前编译(AOT编译器,AheadOfTimecompiler):把Java直接编译为本地
cremin
·
2017-09-20 10:01
深入理解java虚拟机
读书笔记,第八章:虚拟机字节码执行引擎
8.1概述执行引擎:输入字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果8.2运行时栈帧结构栈帧是虚拟机用于方法调用和方法执行的数据结构,是虚拟机运行时数据区的虚拟机栈的栈元素栈帧存储了方法的局部变量表、操作数栈、动态连接、方法返回地址等信息每一个方法从调用开始到执行结束,就是栈帧在虚拟机栈中入栈出栈的过程在编译期间,栈帧需要多大的局部变量表、多深的操作数栈都已经完全确定,并且写入方法
cremin
·
2017-09-19 15:22
深入理解java虚拟机
读书笔记,第七章:虚拟机类加载机制
7.1概述虚拟机把描述类的数据从class文件加载到内存,经过校验、转换解析、初始化,最形成能够被虚拟机直接使用的java类型,这就是虚拟机的加载过程类的加载、连接、初始化实在运行期进行的,会稍微增加性能开销,但是也会提高灵活性动态扩展的语言特性是依赖于运行期动态加载和动态连接这个特点实现的运行期类加载应用:applet、jsp、osgi7.2类的加载时机类的加载、验证、准备和初始化顺序确定,按部
cremin
·
2017-09-18 15:29
《
深入理解Java虚拟机
》读书笔记(2)——Class文件与类加载器
简单记录一些《
深入理解Java虚拟机
》的笔记(多数图文都摘自《
深入理解Java虚拟机
》),供自己查阅和交流学习。
峡客
·
2017-09-17 19:45
Java String.intern()
阅读更多在看《
深入理解Java虚拟机
》第二章中有如下代码:Stringstr1=newStringBuilder("计算机").append("软件").toString();System.out.println
lg_asus
·
2017-09-14 18:00
java
string
intern
深入理解Java虚拟机
(jvm性能调优+内存模型+虚拟机原理)
从虚拟机的发展历史,虚拟机的内存结构,对象的分配与回收以及字节码,类加载等多个方面深入地对Java虚拟机进行了剖析。内容详实,语言通俗易懂。理论结合实践,让学习本套视频的朋友可以更快的理解虚拟机的原理,以解决虚拟机所带来的性能瓶颈以及由于虚拟机的不正当参数所导致各种问题。就像使用浏览器打开网页,使用微信聊天一样,运行Java应用需要java虚拟机。我们似乎并不去关注浏览器是如何实现的,也不需要知道
小红牛
·
2017-09-14 10:40
2017/9/12 String.intern()
参考:《
深入理解java虚拟机
》p56-57揭开String.intern()那神秘的面纱深入分析String.intern和String常量的实现原理1.newString("abc")创建了几个对象
木叶111
·
2017-09-12 15:21
深入理解Java虚拟机
总结-虚拟机类加载机制
注:此文是我在读完周志明老师的
深入理解Java虚拟机
之后总结的一篇文章,请阅读此书获取更加详细的信息.类加载的时机遇到new,getstatic,putstatic,invokestatic四条字节码指令时
AlstonWilliams
·
2017-09-12 10:28
深入理解JAVA虚拟机
读书笔记----虚拟机类加载机制
概述虚拟机类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。不像C语言,写好代码后,编译-》链接-》执行;Java语言里,类型的加载和连接过程是在程序运行期间完成的。类加载的时机虚拟机规范严格规定了有且只有五种情况必须对类进行初始化(加载,验证,准备自动在之前开始)1、遇到new,getstatic,puts
乌枭
·
2017-09-11 21:50
java
实例分析Java class文件内容
JavaClass文件内容解析及实例验证最近在拜读《
深入理解java虚拟机
》,看到了其中对于Class文件内容的解析,感觉书上没有结合确实的例子来对照,总看得有点云里雾里。
imzhiyang
·
2017-09-10 10:20
java
class文件
jvm原理
Java多线程安全原理
从[
深入理解Java虚拟机
],[Java并发编程的艺术]这两本书里学到了很多知识。在学习的过程中,总结下对多线程的理解。
DoReMiFaSolLaTi
·
2017-09-08 15:57
java
深入理解java虚拟机
精华总结(面试)
一、运行时数据区域Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区1.1程序计数器程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号指示器。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码的指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这
加油小杜
·
2017-09-08 15:33
深入理解Java虚拟机
总结
转载自:http://www.cnblogs.com/prayers/p/5515245.html借鉴阅读,文章写的很好,给个赞!一、运行时数据区域Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区1.1程序计数器程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号指示器。字节码解释器
kin灬
·
2017-09-08 10:36
java
后端好书阅读与推荐(续)
深入理解Java虚拟机
深入理解Java虚拟机
(豆瓣)https://book.douban.com/subje...Java怎么用,是一个问题;怎么用好是一个大问题;这么用是为什么,是一个更
MageekChiu
·
2017-09-08 00:00
linux
javascript
java
node.js
程序员
JVM(一) OpenJDK1.8源码在Ubuntu16.04下的编译
笔者最近在学习周志明老师编写的《
深入理解Java虚拟机
》一书,书中第一章的实战部分就是“自己编译JDK”,不过书中提到的是OpenJDK7的编译。
bmw601055
·
2017-09-07 15:51
深入理解Java虚拟机
——JVM类加载机制(类加载过程和类加载器)
一、什么是类加载机制?虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。二、类加载的时机类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准(Preparation)、解析(Resolution)、初始化(Initia
小黄花的故事
·
2017-09-07 00:24
Java
深入理解java虚拟机
深入理解Java虚拟机
——JVM、DVM(dalvik)和ART之间的区别
一、Dalvik介绍DalvikVM是Android平台的核心组成部分之一,它的名字来源于冰岛一个名为Dalvik的小渔村。DalvikVM并不是一个Java虚拟机,它没有遵循Java虚拟机规范,不能直接执行Java的Class文件,使用的是寄存器架构而不是JVM中常见的栈架构。但是它与Java又有着千丝万缕的联系,它执行的dex(DalvikExecutable)文件可以通过Class文件转化而
小黄花的故事
·
2017-09-06 23:22
Java
深入理解java虚拟机
深入理解Java虚拟机
——JVM垃圾回收机制和垃圾收集器详解
一:概述说起垃圾回收(GarbageCollection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,顾名思义,垃圾回收就是释放垃圾占用的空间,这一切都交给了JVM来处理。本文主要解答三个问题:1、哪些内存需要回收?(对象是否可以被回收的两种经典算法:引用计数法和可达性分析算法)2、如何回收?(三种经典垃圾回收算法(标记清除算法
小黄花的故事
·
2017-09-06 17:32
Java
深入理解java虚拟机
深入理解JAVA虚拟机
读书笔记----垃圾收集器与内存分配策略
GC的主要对象:JAVA堆和方法区判断GC是否存活的方法:1、引用技术算法说明:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计数器都为0的对象就是不可能再被使用的。特点:简单高效实际:大多数虚拟机不会使用这个,主要原因是它很难解决对象之间相互循环引用的问题2、可达性分析(ReachabilityAnalysis)说明:基本思路就是通过一系列名
乌枭
·
2017-09-05 22:52
java
深入理解JAVA虚拟机
读书笔记----Java内存区域与内存溢出异常
1、为什么需要了解它?java源码是由C++和少量的C编写的。JAVA与C++之间很大的不同点之一是:C++开发人员在内存管理领域,即对没有对象拥有绝对的控制权,也必须对每个对象的每个整个声明周期负责;而JAVA开发人员在虚拟机的自动内存管理机制的帮助下,不再需要处理对象的销毁,不容易出现内存泄漏和内存溢出问题,但是,一旦出现了内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查将
乌枭
·
2017-09-04 22:01
java
深入理解JAVA虚拟机
读书笔记----走进JAVA
1、JAVA虚拟机上的其他语言实例1.1、Clojure:是一种运行在Java平台上的Lisp方言1.2、JRuby:一个采用纯Java实现的Ruby解释器1.3、Groovy:Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy代码能够与Java代码很好地结合,也能用于扩展现有代码。由于其运行在JVM上的特
乌枭
·
2017-09-03 22:58
java
关于跨平台的一些认识
前段时间看了周志明的那本《
深入理解java虚拟机
》。对于平台无关性问题,有了一些新的认识。所以特写一篇博客来进行总结。
eleven_yw
·
2017-09-03 22:00
《
深入理解Java虚拟机
》学习笔记--JVM运行时数据区
许多大牛们都写过关于JVM相关的文章,我只是一个初来乍到的小白。写这篇文章主要是用来巩固一下学过的知识,其中有一些自己的看法。有些地方说的可能不对,请大家多多指教。我在学习Java之前学过c跟c++,当然就是在大学课堂上学的那点知识,根本没有过深入了解。对于使用c++开发的程序员来说,他们对于内存还是比较敏感的。因为他们能手动在内存上开辟空间,而且使用完后要手动释放。在给一个类写构造函数的时候,一
Enjoy-Life
·
2017-08-31 22:15
JVM学习笔记
《
深入理解Java虚拟机
之栈帧的结构》
Java虚拟机栈是线程私有的,它描述的是Java方法执行的内存模型:每个方法在执行的同时会创建一个栈帧用于存局部变量表、操作数栈、动态链接、方法返回地址等信息。每一个方法从调用到执行完毕的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。每一个栈帧都包含了局部变量表、操作数栈、动态链接、方法返回地址和一些额外的附加信息。在编译成class文件后,栈帧中需要多大的局部变量表和多深的操作数栈已经保
Eragon伊拉龙
·
2017-08-31 15:33
Java虚拟机
java虚拟机动态类型语言支持
这篇博客是根据《
深入理解java虚拟机
》的讲解和本人对动态类型语言的一些认识,来深度剖析一下java虚拟机对动态类型语言的支持!
demohui
·
2017-08-30 18:34
java虚拟机
深入理解java虚拟机
(1)-----Java内存模型与内存溢出异常
Java内存模型与内存溢出异常《
深入理解java虚拟机
》读书笔记,记录一下基本的理论知识,有些地方可能总结不是很清楚,感兴趣的可以阅读原书Java虚拟机在执行java程序时会把它所管理的内存划分为若干个不同的数据区域
leoYouthDream
·
2017-08-26 10:17
读书分享系统
java
对String.intern()的理解
一直对String对象里面的intern()方法不是很了解,最近在读《
深入理解Java虚拟机
》这本书里面终于得到了一个比较清晰的解释。
rucnevermore
·
2017-08-25 17:08
Java
Java虚拟机字节码执行引擎(八)
读书笔记
深入理解Java虚拟机
:JVM高级特性与最佳实现(第二版)概述区别于物理机的执行引擎是建立在处理器、硬件、指令集和操作系统层面之上,Java虚拟机的执行引擎是由自己实现的,因此可自行制定指令集与体系结构
Bollen_Chak
·
2017-08-25 17:24
深入理解Java虚拟机
Java内存区域与内存溢出异常运行时数据区域程序计数器线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器值为空。Java虚拟机栈Java虚拟机栈也是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是Java方法执行的内存模型。每一个方法从调用直至执行完成的工程就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。这个区域定义
路灯下修Bug的猿
·
2017-08-21 21:27
读书笔记
javaGC垃圾收集器相关算法
说起java垃圾收集器大家估计都没什么印象其实就是GC嘛,笔试GC题目被虐无数次,我没看java虚拟机的时候我也不知道是怎么,在这里顺便跟大家推荐一本书吧,《
深入理解java虚拟机
》好啦废话少说还是进入正题吧
Carver_c5f0
·
2017-08-17 09:56
《
深入理解Java虚拟机
》(六)堆内存使用分析,垃圾收集器 GC 日志解读
堆内存使用分析,垃圾收集器GC日志解读重要的东东在Java中,对象实例都是在堆上创建。一些类信息,常量,静态变量等存储在方法区。堆和方法区都是线程共享的。GC机制是由JVM提供,用来清理需要清除的对象,回收堆内存。GC机制将Java程序员从内存管理中解放了出来,可以更关注于业务逻辑。在Java中,GC是由一个被称为垃圾回收器的守护线程执行的。在从内存回收一个对象之前会调用对象的finalize()
搜云库技术团队
·
2017-08-14 00:00
jvm
gc
java
浅谈JVM垃圾回收机制
——《
深入理解java虚拟机
》这段话是
深入理解java虚拟机
中第三章开篇的第一句话。
code_LE
·
2017-08-13 17:20
jvm
深入理解JAVA虚拟机
之JVM内存以及垃圾回收
深入理解JAVA虚拟机
之JVM内存以及垃圾回收
深入理解JAVA虚拟机
之JVM内存以及垃圾回收JVM相关知识点JVM内存堆内存垃圾收集器和内存分配策略引用计数法可达性分析法回收方法区老年代GC垃圾收集算法标记
洋葱汤_
·
2017-08-12 16:10
深入理解java虚拟机
《
深入理解Java虚拟机
》第7章 虚拟机类加载机制
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。7.1概述上一章我们了解了Class文件存储格式的具体细节,在Class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能运行和使用。而虚拟机如何加载这些Class文件?Class文件中的信息进入到虚拟机后会发生什么变化?这些都是本章将要讲解的内容。虚拟机把描述类的数据从Class文件加载到内存,并对数据
huaxun66
·
2017-08-11 10:28
深入理解JAVA虚拟机
《
深入理解Java虚拟机
》读书笔记——垃圾收集器与内存分配策略
一、判断对象是否存活的算法:引用计数算法。给对象添加一个引用计数器,每一个地方引用它时,计数器值加1;当引用失效时,计数器值减1;任何时刻计数器为0的对象就是不可能再被使用的。优缺点:实现简单,效率高;但很难解决对象之间相互循环引用的问题。可达性分析算法通过一系列的称为“GCRoots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GCRoots没有任何引用链相
code_better
·
2017-08-08 17:19
java
深机笔记 - 20 HotSpot虚拟机内的即时编译器
《
深入理解Java虚拟机
:JVM高级特性与最佳实践(第2版)》11.2节如无特殊说明,本章提及的HotSpot、虚拟机指HotSpot虚拟机,编译器、即时编译器指HotSpot虚拟机内的即时编译器热点代码和
小马王_
·
2017-08-08 15:38
《
深入理解Java虚拟机
》读书笔记——Java内存区域与内存溢出异常
一、内存区域(运行时数据区域)划分:程序计数器线程安全,每条线程都有一个独立的程序计数器字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令分支、循环、跳转、异常处理、线程恢复等都是依靠它实现Java虚拟机栈也是线程私有,生命周期与线程相同描述的是Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方
code_better
·
2017-08-08 15:15
java
老司机手把手教你自己编译jdk
相信很多人都看过《
深入理解Java虚拟机
》这本书(周志明著),很多人也都想参照着书中所述“自己编译jdk”的步骤来体验一下过程,但是实际操作过程中可能会遇到这样或者那样的问题,造成最终放弃掉。
明月(Alioo)
·
2017-08-04 18:28
jdk
编译
java
《
深入理解Java虚拟机
:JVM高级特性与最佳实践(第2版)周志明 著》阅读笔记目录(已完结)
《
深入理解Java虚拟机
:JVM高级特性与最佳实践(第2版)周志明著》阅读笔记目录:第一部分走进Java无第二部分自动内存管理机制01运行时数据区域02HotSpot虚拟机内存中对象的布局03确定对象已死的
小马王_
·
2017-08-03 16:49
jvm
java
Class文件
《
深入理解java虚拟机
》读书笔记六 【调优案例分析】
1.高性能硬件上的程序部署策略在线文档类型网站,用户交互性强,对停顿时间敏感,网站形式的应用,主要对象的生命周期是请求级或页面级的“朝生夕灭”的对象,无需进入老年代,最好在MinorGC的时候就回收,会话级和全局级的长生命对象很少。硬件资源:4个CPU,16GB物理内存,操作系统64位CentOS5.4,web服务器Resin。软件设置:64位JDK1.5,Xmx=Xms=12GB。问题:网站每隔
qq_19344223
·
2017-08-02 22:24
java
虚拟机
《
深入理解java虚拟机
》读书笔记五 【虚拟机性能监控与故障处理工具】
JDK发布的6个命令行工具jsp:jsp列出正在运行的虚拟机进程id,即LVMIDjstat:jstat-gc276425020虚拟机垃圾收集状况,每250毫秒查询一次进程2764的垃圾收集状况,-class类的装载,卸载等信息,-complierJIT编译了的方法,耗时等信息。jinfo:jinfo-sysprops2764java配置信息工具jmap:jmap-dump:live,format
qq_19344223
·
2017-08-01 10:40
java
Java泛型(一)类型擦除
前言本文为对Java泛型技术类型擦除部分的一个总结,主要参考文献有《Java编程思想第4版》、《Java核心技术第10版》、《
深入理解Java虚拟机
第2版》,文中的代码Demo主要来自于Java编程思想
开发者小王
·
2017-07-31 20:56
上一页
53
54
55
56
57
58
59
60
下一页
按字母分类:
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
其他