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学习
笔记(五):根据字节码指令介绍方法执行流程
在上一篇博客中介绍了《Class文件结构》,其中就提到了一个例子,下面我们依然根据该例子的字节码来对方法的执行流程进行讲解。 java类源码如下: public class TestClass{ private int num; public int inc(){ for(int
chenzhou123520
·
2012-07-17 19:00
java
jvm
字节码
指令
JVM学习
笔记(五):根据字节码指令介绍方法执行流程
阅读更多在上一篇博客中介绍了《Class文件结构》,其中就提到了一个例子,下面我们依然根据该例子的字节码来对方法的执行流程进行讲解。java类源码如下:publicclassTestClass{privateintnum;publicintinc(){for(inti=0;ijavap-verboseTestClassCompiledfrom"TestClass.java"publicclassT
chenzhou123520
·
2012-07-17 19:00
jvm
字节码
指令
java
JVM学习
笔记(五):根据字节码指令介绍方法执行流程
在上一篇博客中介绍了《Class文件结构》,其中就提到了一个例子,下面我们依然根据该例子的字节码来对方法的执行流程进行讲解。 java类源码如下: public class TestClass{ private int num; public int inc(){ for(int
chenzhou123520
·
2012-07-17 19:00
java
jvm
字节码
指令
JVM学习
笔记(四):Class文件结构
本文根据《深入理解Java虚拟机》第6章内容整理 一、Java的语言无关性 到今天为止,或许大部分的程序员都还认为Java虚拟机执行Java程序是一件理所当然和天经地义的事情。但在Java发展之初,设计者们就考虑过了在Java虚拟机上运行其它语言的可能性。时至今日商业机构和开源机构以及在Java语言之外发展出一大批在Java虚拟机上运行的语言,如Clojure,Groovy,JRuby,Jy
chenzhou123520
·
2012-07-17 18:00
java
jvm
字节码
虚拟机
Class
JVM学习
笔记(四):Class文件结构
本文根据《深入理解Java虚拟机》第6章内容整理 一、Java的语言无关性 到今天为止,或许大部分的程序员都还认为Java虚拟机执行Java程序是一件理所当然和天经地义的事情。但在Java发展之初,设计者们就考虑过了在Java虚拟机上运行其它语言的可能性。时至今日商业机构和开源机构以及在Java语言之外发展出一大批在Java虚拟机上运行的语言,如Clojure,Groovy,JRuby,Jy
chenzhou123520
·
2012-07-17 18:00
java
jvm
字节码
虚拟机
Class
JVM学习
笔记(四):Class文件结构
本文根据《深入理解Java虚拟机》第6章内容整理 一、Java的语言无关性 到今天为止,或许大部分的程序员都还认为Java虚拟机执行Java程序是一件理所当然和天经地义的事情。但在Java发展之初,设计者们就考虑过了在Java虚拟机上运行其它语言的可能性。时至今日商业机构和开源机构以及在Java语言之外发展出一大批在Java虚拟机上运行的语言,如Clojure,Groovy,JRuby,Jy
chenzhou123520
·
2012-07-17 18:00
java
字节码
jvm
虚拟机
Class
JVM学习
笔记(四):Class文件结构
本文根据《深入理解Java虚拟机》第6章内容整理 一、Java的语言无关性 到今天为止,或许大部分的程序员都还认为Java虚拟机执行Java程序是一件理所当然和天经地义的事情。但在Java发展之初,设计者们就考虑过了在Java虚拟机上运行其它语言的可能性。时至今日商业机构和开源机构以及在Java语言之外发展出一大批在Java虚拟机上运行的语言,如Clojure,Groovy,JRuby,Jy
chenzhou123520
·
2012-07-17 18:00
java
jvm
字节码
虚拟机
Class
JVM学习
笔记(三):JVM的垃圾回收
注:本文根据《深入理解Java虚拟机》第3章部分内容整理而成。一.如何判断对象是否需要回收?堆中几乎放着java世界中的所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。而如何判断对象是否应该回收,存在两个算法:引用计数算法(ReferenceCounting)和根搜索算法(GCRootsTracing)。但
青葱岁月
·
2012-07-12 21:50
Java
JVM
JVM学习
笔记(三):JVM的垃圾回收
注:本文根据《深入理解Java虚拟机》第3章部分内容整理而成。 一.如何判断对象是否需要回收? 堆中几乎放着java世界中的所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。而如何判断对象是否应该回收,存在两个算法:引用计数算法(ReferenceCounting)和根搜索算法(GCRootsTracing
chenzhou123520
·
2012-07-12 21:00
jvm
算法
GC
垃圾回收
JVM学习
笔记(三):JVM的垃圾回收
注:本文根据《深入理解Java虚拟机》第3章部分内容整理而成。 一.如何判断对象是否需要回收? 堆中几乎放着java世界中的所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。而如何判断对象是否应该回收,存在两个算法:引用计数算法(ReferenceCounting)和根搜索算法(GCRootsTracing
chenzhou123520
·
2012-07-12 21:00
jvm
算法
GC
垃圾回收
JVM学习
笔记(三):JVM的垃圾回收
注:本文根据《深入理解Java虚拟机》第3章部分内容整理而成。 一.如何判断对象是否需要回收? 堆中几乎放着java世界中的所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。而如何判断对象是否应该回收,存在两个算法:引用计数算法(ReferenceCounting)和根搜索算法(GCRootsTracing
chenzhou123520
·
2012-07-12 21:00
jvm
算法
GC
垃圾回收
JVM学习
笔记(三):JVM的垃圾回收
注:本文根据《深入理解Java虚拟机》第3章部分内容整理而成。 一.如何判断对象是否需要回收? 堆中几乎放着java世界中的所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。而如何判断对象是否应该回收,存在两个算法:引用计数算法(ReferenceCounting)和根搜索算法(GCRootsTracing
chenzhou123520
·
2012-07-12 21:00
jvm
算法
GC
垃圾回收
JVM学习
笔记(二):JVM中对象访问的两种方式
由于Reference类型在Java虚拟机规范里面只规定了一个指向对象的引用,并没有定义这个引用应该通过哪种方式去定位,以及访问到Java堆中的对象的具体位置,因此不同虚拟机实现的对象访问方式会有所不同,主流的访问方式有两种:使用句柄和直接指针:如果使用句柄访问方式,Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据和类型数据各自的
chenzhou123520
·
2012-07-11 18:00
java
jvm
虚拟机
指针
句柄
JVM学习
笔记(二):JVM中对象访问的两种方式
由于Reference类型在Java虚拟机规范里面只规定了一个指向对象的引用,并没有定义这个引用应该通过哪种方式去定位,以及访问到Java堆中的对象的具体位置,因此不同虚拟机实现的对象访问方式会有所不同,主流的访问方式有两种:使用句柄和直接指针:如果使用句柄访问方式,Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据和类型数据各自的
chenzhou123520
·
2012-07-11 18:00
java
jvm
虚拟机
指针
句柄
JVM学习
笔记(二):JVM中对象访问的两种方式
由于Reference类型在Java虚拟机规范里面只规定了一个指向对象的引用,并没有定义这个引用应该通过哪种方式去定位,以及访问到Java堆中的对象的具体位置,因此不同虚拟机实现的对象访问方式会有所不同,主流的访问方式有两种:使用句柄和直接指针:如果使用句柄访问方式,Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据和类型数据各自的
chenzhou123520
·
2012-07-11 18:00
java
jvm
虚拟机
指针
句柄
JVM学习
笔记(二):JVM中对象访问的两种方式
由于Reference类型在Java虚拟机规范里面只规定了一个指向对象的引用,并没有定义这个引用应该通过哪种方式去定位,以及访问到Java堆中的对象的具体位置,因此不同虚拟机实现的对象访问方式会有所不同,主流的访问方式有两种:使用句柄和直接指针:如果使用句柄访问方式,Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据和类型数据各自的
chenzhou123520
·
2012-07-11 18:00
java
jvm
虚拟机
指针
句柄
JVM学习
笔记(一):运行时数据区
运行时数据区 java虚拟机定义了若干种程序运行时使用到的运行时数据区1.有一些是 随虚拟机的启动而创建,随虚拟机的退出而销毁2.第二种则是与线程一一对应,随线程的开始和结束而创建和销毁。java虚拟机所管理的内存将会包括以下几个运行时数据区域 PC寄存器也叫程序计数器(ProgramCounterRegister)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器。每一条
chenzhou123520
·
2012-07-11 17:00
java
jvm
虚拟机
JAVA虚拟机
内存
JVM学习
笔记(一):运行时数据区
运行时数据区 java虚拟机定义了若干种程序运行时使用到的运行时数据区1.有一些是 随虚拟机的启动而创建,随虚拟机的退出而销毁2.第二种则是与线程一一对应,随线程的开始和结束而创建和销毁。java虚拟机所管理的内存将会包括以下几个运行时数据区域 PC寄存器也叫程序计数器(ProgramCounterRegister)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器。每一条
chenzhou123520
·
2012-07-11 17:00
java
jvm
虚拟机
JAVA虚拟机
内存
JVM学习
笔记(一):运行时数据区
运行时数据区 java虚拟机定义了若干种程序运行时使用到的运行时数据区1.有一些是 随虚拟机的启动而创建,随虚拟机的退出而销毁2.第二种则是与线程一一对应,随线程的开始和结束而创建和销毁。java虚拟机所管理的内存将会包括以下几个运行时数据区域 PC寄存器也叫程序计数器(ProgramCounterRegister)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器。每一条
chenzhou123520
·
2012-07-11 17:00
java
jvm
虚拟机
JAVA虚拟机
内存
JVM学习
笔记(一):运行时数据区
运行时数据区 java虚拟机定义了若干种程序运行时使用到的运行时数据区1.有一些是 随虚拟机的启动而创建,随虚拟机的退出而销毁2.第二种则是与线程一一对应,随线程的开始和结束而创建和销毁。java虚拟机所管理的内存将会包括以下几个运行时数据区域 PC寄存器也叫程序计数器(ProgramCounterRegister)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器。每一条
chenzhou123520
·
2012-07-11 17:00
java
jvm
虚拟机
JAVA虚拟机
内存
深入
jvm学习
总结
(1)两种类型的类加载器: 1.用户自定义的类加载器 --java.lang.ClassLoader的子类,覆盖它的findClsss(Stringname)方法即可,参数指定类的名称,返回对应的class对象的引用 --用户可以定制类的加载方式 2.jvm自带提供了3种类加载器: 根(Bootstr
crazy123456789
·
2012-06-28 22:00
java
jvm
数据结构
虚拟机
Class
extension
JVM学习
笔记
上周观看了圣思园张龙老师所讲的课程,结合自己的理解对有关类加载器的内容(ClassLoader)做下总结. 一:什么是类加载器(ClassLoader)? java跨平台?--Java源文件编译成了的.class文件(字节码文件)可以在JVM上运行,而JVM可以看成一个独立于各操作系统的平台,JVM会加载编译后的.class文件到内存,由JVM解析执行. 类加载器,就是可以将编译后
zyguo1006
·
2012-06-18 23:22
jvm
类加载器
JVM学习
笔记
我们前面说了很多原理,现在我们就开始实战,说一下JVM的调优参数: 一般情况JVM调优参数如下: set JAVA_OPTS=-server -Xms1400M -Xmx1400M -Xmn768M -Xss128k -XX:PermSize=256M -XX:MaxPermSize=256M -XX:SurvivorRatio=8 -XX:MaxTenuringThresh
dyllove98
·
2012-05-31 11:00
jvm
JVM学习
笔记系列(四)
标记-清除算法最基础的收集算法是“标记-清除”(Mark-Sweep)算法,如它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象,它的标记过程其实在前一节讲述对象标记判定时已经基本介绍过了。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其缺点进行改进而得到的。它的主要缺点有两个:一个是效率问题,标记和清除过
lewis122
·
2012-05-31 00:00
学习笔记
JVM学习
笔记系列(三)
在SunHotspot的JVM内存管理白皮书中描述GC的概念是指垃圾收集器,而不是垃圾回收。例如在做GC调优的时候,选择的不是一种垃圾回收方式,你选择的是一种垃圾的收集器。垃圾收集器的不同在于,它不仅仅是做垃圾回收,他还决定了内存是如何分配的。也就是在选择GC的时候,因为他决定的内存分配,所以也就决定了应用的处理速度。JVM-内存分配JVM在分配堆内存的时候,大多数情况下都是在JVM的堆上分配内存
lewis122
·
2012-05-30 14:00
学习笔记
JVM学习
笔记系列(一)
对于从事C/C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,而且不容易出现内存泄漏和内存溢出问题,看起来由虚拟机管理内存一切都很美好。不过,也正是
lewis122
·
2012-05-30 14:00
学习笔记
JVM学习
笔记系列(二)
在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(也就是大家常说的OOM)异常的可能,大概分类有以下几种: Java堆溢出 虚拟机栈和本地方法栈溢出 运行时常量池溢出 方法区溢出 本机直接内存溢出 Java堆溢出 Java堆用于储存对象实例,我们只要不断地创建对象,并且保证GC Roo
lewis122
·
2012-05-30 14:00
学习笔记
jvm学习
http://blog.jobbole.com/15342/ 阮一峰:《禅与摩托车维修艺术》读后感 http://blog.jobbole.com/6611/每个程序员都应该读的一本书
foxbrother
·
2012-05-24 21:00
JVM学习
笔记-内存分配与回收策略
程序计数器: 是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。 Java 虚拟机栈: Java 方法执行的内存模型,即每个方法被执行的时候都会同时创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。注: java 虚拟机栈也是线程私有的,它与线程的生命周期相同
redshu521
·
2012-05-03 22:00
jvm
JVM学习
笔记-程序优化与代码编译
1. Java 语言编译过程中比较有代表性的编译器: 1) 前端编译器:把 *.java 文件转变成 *.class 文件的过程,如 Sun 的 Javac 、 Eclipse JDT 中得增量式编译器。 2) JIT 编译器:虚拟机的后端运行期编译器把字节码转化成机器码的过程,如 HotSpot VM 的 C1 、 C2 编译器。 3)&
redshu521
·
2012-05-03 22:00
jvm
JVM学习
笔记-虚拟机字节码执行引擎
1. 栈帧( Stack Frame ):是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态链接和方法返回地址等信息。每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。 2. 局部变量表:是一组变量值存储空间,用于存放方法参数和方法内部定
redshu521
·
2012-05-03 22:00
jvm
JVM学习
笔记-虚拟机类加载机制
看过很多书,总结了很多笔记,这次开始放到网上。 1.虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 2.类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Reso
redshu521
·
2012-05-03 22:00
java
虚拟机
JVM学习
笔记4--JVM设置
1.-Xmx:[quote]JVM最大可用内存[/quote]2.-Xms[quote]JVM初始可用内存,可以设置与-Xmx相同,避免每次垃圾回收完成后JVM重新分配内存。[/quote]3.-Xmn[quote]年轻代大小,Sun官方推荐配置为heap的3/8[/quote]4.-Xss[quote]每个线程的堆栈大小,JDK5.0以后每个线程堆栈大小为1M[/quote]5.-XX:NewR
owen42087743
·
2012-04-11 20:37
java基础
JVM学习
笔记4--JVM设置
1.-Xmx: 引用 JVM最大可用内存 2.-Xms 引用 JVM初始可用内存,可以设置与-Xmx相同,避免每次垃圾回收完成后JVM重新分配内存。 3.-Xmn 引用 年轻代大小,Sun官方推荐配置为heap的3/8 4.-Xss 引用 每个线程的堆栈大小,JDK5.0以后每个线程堆栈大小为1M 5.-XX:NewRatio
42087743
·
2012-04-11 20:00
学习笔记
JVM学习
笔记3--分代
1.共划分为三个代:年轻代(Young Generation)、年老代(Old Generation)和持久代(Permanent Generation) 2.年轻代 引用 所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。,两个年轻代分三个区。一个Eden区Survivor区(一般而言)。大部分对象在Eden区中生成。当Eden区满时
42087743
·
2012-04-11 16:00
GC
permanent
JVM学习
笔记2--强/弱/软应用
1.强引用 引用 一般声明对象时虚拟机生成的引用,强引用环境下,垃圾回收时需要严格判断当前对象是否被强引用,如果被强引用,则不会被垃圾回收 2.软引用 引用 一般被做为缓存来使用。与强引用的区别是,软引用在垃圾回收时,虚拟机会根据当前系统的剩余内存来决定是否对软引用进行回收。如果剩余内存比较紧张,则虚拟机会回收软引用所引用的空间;如果剩余内存相对富裕,则不会进行
42087743
·
2012-04-11 15:00
jvm
弱引用
强引用
软引用
JVM学习
-2.1 编译并调试openjdk的zero版 之CDT篇
上篇解决了在netbeans下编译调试openjdk的问题。毕竟用惯了eclipse,我想着尝试用eclipseCDT来替代Netbeans.结果成功了。过程如下:在eclipse里Import项目,选择Exsitingcodeasmakefileproject,选择项目目录:icedtea6/openjdk-ecj/hotspot配置项目,首先是build,在BuilderSetting里,Bu
hatedance
·
2012-03-31 16:00
OpenJDK
JVM学习
-2.1 编译并调试openjdk的zero版 之CDT篇
阅读更多上篇解决了在netbeans下编译调试openjdk的问题。毕竟用惯了eclipse,我想着尝试用eclipseCDT来替代Netbeans.结果成功了。过程如下:在eclipse里Import项目,选择Exsitingcodeasmakefileproject,选择项目目录:icedtea6/openjdk-ecj/hotspot配置项目,首先是build,在BuilderSetting
hatedance
·
2012-03-31 16:00
JVM学习
笔记(二)
接上文 ------------------------------------ 二、类文件结构 虚拟机不关注Class的来源是什么语言,它只要符合Class文件应有的结构就可以在Java虚拟机中运行。 1.Class类文件结构 Class文件是一组8位字节为基础的二进制流,各个数据项目严格按照顺序紧凑排列在Class文件中,中间没有添加任何分隔符。当遇到需要占用8位字节以上空间的数据项
shensy
·
2012-03-21 23:00
学习笔记
JVM学习
之-栈
JVM学习
之-栈JVM栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;JVM堆解决的是数据存储的问题,即数据怎么放、放在哪儿,另外JVM堆中存的是对象。
大漠驼铃
·
2012-03-15 19:00
jvm学习
篇3-类执行篇
继上篇classLoader加载完class文件后jvm将执行该class类的静态方法或实例化对象进行调用。在源代码编译阶段将源代码编译为jvm字节码jvmijiem是一种中间代码的形式。jvm字节码要在jvm运行期间进行解释并执行,这种方式称为字节码解释执行方式。由于采用的中间吗的方式,jvm有一套自己的指令,对于面向对象的语言而言最重要的是执行方法的指令jvm采取了invokestaticin
liuzhigang1237
·
2012-03-15 16:00
jvm
jdk
优化
ClassLoader
compiler
虚拟化
jvm学习
篇2-java类加载机制
1.2类加载机制类加载机制分为几步1装载装载过程就是将classLoader将二进制字节码加载到jvm中,jvm通过全限定名及类加载器完成对类的加载同样类加载器加上类全名也是在jvm的唯一标示id2链接链接过程负责对二进制字节码进行格式校验初始化装载类中的静态变量及解析类中调用接口、类。3初始化初始化过程既是执行类中的静态初始化代码、构造器代码、静态属性的初始化。一下四种情况会调用初始化过程1调用
strive
·
2012-03-15 15:23
jvm
classloader
class
jar
extension
jdk
jvm篇
jvm学习
篇2-java类加载机制
1.2类加载机制类加载机制分为几步1装载装载过程就是将classLoader将二进制字节码加载到jvm中,jvm通过全限定名及类加载器完成对类的加载同样类加载器加上类全名也是在jvm的唯一标示id2链接链接过程负责对二进制字节码进行格式校验初始化装载类中的静态变量及解析类中调用接口、类。3初始化初始化过程既是执行类中的静态初始化代码、构造器代码、静态属性的初始化。一下四种情况会调用初始化过程1调
liuzhigang1237
·
2012-03-15 15:00
jvm
jdk
ClassLoader
jar
Class
extension
jvm学习
篇1- java类编译
搞了java两年多了,无意中看到淘宝架构师林昊写的一本java分布式应用上讲解的jvm。感觉写的挺好。特作此笔记、以备以后复习用。 jvm主要做了哪些呢?1java代码的执行 1.1代码编译为class类 1.2装载classClassLoader 1.3执行class2内存的管理 2.1内存空间 2.2内存分配2.3内存回收 2.4内存状况分析3线程资源的同步和交互机制 3.1线程资源同步 3.
liuzhigang1237
·
2012-03-15 15:00
java
jvm
ClassLoader
Class
token
分布式应用
JVM学习
笔记(一)
前言:曾经看过一本很好的关于介绍Java虚拟机的书,好像叫《深入Java虚拟机(第二版)》的电子版,但不慎遗失了,实在可惜。有时间再到网上找找,看还有没有下载的。 一、关于运行时数据区域: 1.Java虚拟机所管理的内存将包括以下的几个运行时数据区域: 程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、运行时常量池、直接内存。 (1)程序计数器:
shensy
·
2012-03-14 23:00
学习笔记
JVM学习
之-JVM内存结构
JVM学习
之-JVM内存结构1.1 JVM运行ClassLoader->RUNNTIMEDATAAREA->EXECUTIONENGINE->NATIVEINTERFACE->NATIVELIBRARIESClassLoader
大漠驼铃
·
2012-03-14 09:00
深入
JVM学习
笔记-安全性
1、 基本沙箱(1) 类加载器a) 它防止恶意代码干涉善意代码。为由不同的类加载器加载的代码提供不同的命名空间,在java虚拟机中,在同一个命名空间的类可以直接交互,但是不同命名空间的类根本无法知道对方的存在,当然也可以通过显示地提供允许它们交互的,下面的例子就是一种显示访问另一个命名空间的方式:/*LoaderSample2.java*/ importjava.net.*; impor
mrliu20082009
·
2012-03-07 17:00
java
jvm
虚拟机
ClassLoader
网络
Class
深入
JVM学习
笔记-平台无关性
一、平台无关性的支持1、 Java平台Java平台屏蔽了所有底层与硬件、操作系统的交互实现,java程序只需要知道java平台提供的API,但如果程序中调用本地方法就无法保证平台无关性。 2、 java语言java编程语言主要通过对基本的数据类型的值域和行为都由语言定义,而跟具体的操作系统无关。但在c或者c++中,像int型的值域是由它的占位宽度决定,二占位宽度又依赖于编译器所在的平台,但java
mrliu20082009
·
2012-03-02 16:00
java
jvm
虚拟机
api
测试
平台
深入
JVM学习
笔记-虚拟机体系结构
一、虚拟机体系结构1、 执行引擎:(1)由软件实现的执行引擎,每次都一次性解析字节码;(2)“即时编译器”(just-in-timecomplier),第一次被执行的字节码会被编译成本地代码,后续的方法调用都直接执行本地代码,这种方法更快但更耗内存;(3)自适应优化器。在执行开始的时候会解析字节码,同时会监控程序的活动,记录那些调用频繁的代码段,将它编译成本地方法缓存起来,一个好的自适应优化器可以
mrliu20082009
·
2012-03-02 16:00
java
jvm
虚拟机
ClassLoader
api
Class
JVM学习
-2 编译并调试openjdk的zero版
阅读更多上次我成功用netbeans编译并调试openjdk7以后,发现callstack里有一部分居然是汇编,后来了解到openjdk为了优化性能,把核心解释器全部用汇编写的,叫做templateinterpreter。结构如下图左侧:汇编这个东西我是看不懂了,所以我必须编译一个C++解释器版本(右侧图),确切的说,jdk编译的时候,在make命令后面加上CC_INTERP=1这个参数。的确是有
hatedance
·
2012-02-20 16:00
上一页
24
25
26
27
28
29
30
31
下一页
按字母分类:
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
其他