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学习
笔记-平台无关性
一、平台无关性的支持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
JVM学习
-2 编译并调试openjdk的zero版
上次我成功用netbeans编译并调试openjdk7以后,发现callstack里有一部分居然是汇编,后来了解到openjdk为了优化性能,把核心解释器全部用汇编写的,叫做templateinterpreter。结构如下图左侧:汇编这个东西我是看不懂了,所以我必须编译一个C++解释器版本(右侧图),确切的说,jdk编译的时候,在make命令后面加上CC_INTERP=1这个参数。的确是有人写过帖
hatedance
·
2012-02-20 16:00
OpenJDK
JVM学习
-1 用Netbeans调试hotspot
我打算认真学习一下JVM,在网上搜索了一番,发现有人配置从成功用NetBeans调试HotspotJVM.重点参考文章:http://weblogs.java.net/blog/simonis/archive/2008/01/hotspot_develop_1.htmlhttp://blog.csdn.net/fancyerii/article/details/7007503其中后者参考了前者,由
hatedance
·
2012-02-01 17:00
Netbeans
JVM学习
-1 用Netbeans调试hotspot
阅读更多我打算认真学习一下JVM,在网上搜索了一番,发现有人配置从成功用NetBeans调试HotspotJVM.重点参考文章:http://weblogs.java.net/blog/simonis/archive/2008/01/hotspot_develop_1.htmlhttp://blog.csdn.net/fancyerii/article/details/7007503其中后者参考了
hatedance
·
2012-02-01 17:00
JVM学习
笔记-方法区示例与常量池解析
JVM学习
笔记-方法区示例与常量池解析(Method Area Use And Constant Pool Resolution) 博客分类: jvmjava方法区 As an example
黎明lm
·
2012-01-30 09:00
java
jvm
数据结构
虚拟机
【应用软件】
JVM学习
【应用软件】
JVM学习
ByLeoJAVA及JDK介绍1、概述 Java不仅仅是一门编程语言,它还是一个由一系列计算机软件和规范形成的技术体系,这个技术体系提供了用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式终端
wireless_tech
·
2011-12-26 17:00
JVM学习
笔记-本地方法调用(Invoking a Native Method)
阅读更多InvokingaNativeMethodAsmentionedinChapter5,"TheJavaVirtualMachine,"thevirtualmachineinvokesnativemethodsinanimplementationdependentmanner.Wheninvokinganativemethod,thevirtualmachinedoesnotpushanew
denverj
·
2011-11-25 11:00
JVM学习
笔记-本地方法调用(Invoking a Native Method)
Invoking a Native Method As mentioned in Chapter 5, "The Java Virtual Machine," the virtual machine invokes native methods in an implementation dependent manner. When invoking a native
denverj
·
2011-11-25 11:00
method
JVM学习
笔记-调用Java方法(Invoking a Java Method)
阅读更多InvokingaJavaMethodAsmentionedinChapter5,"TheJavaVirtualMachine,"thevirtualmachinecreatesanewstackframeforeachJava(notnative)methoditinvokes.Thestackframecontainsspaceforthemethod'slocalvariables,
denverj
·
2011-11-25 11:00
JVM学习
笔记-调用Java方法(Invoking a Java Method)
Invoking a Java Method As mentioned in Chapter 5, "The Java Virtual Machine," the virtual machine creates a new stack frame for each Java (not native) method it invokes. The stack f
denverj
·
2011-11-25 11:00
method
JVM学习
笔记-分代收集器(Generational Collectors)
GenerationalCollectorsOnedisadvantageofsimplestopandcopycollectorsisthatallliveobjectsmustbecopiedateverycollection.Thisfacetofcopyingalgorithmscanbeimproveduponbytakingintoaccounttwofactsthathavebeen
denverj
·
2011-11-23 14:53
java
jvm
垃圾收集
gc
JVM学习
笔记-分代收集器(Generational Collectors)
阅读更多GenerationalCollectorsOnedisadvantageofsimplestopandcopycollectorsisthatallliveobjectsmustbecopiedateverycollection.Thisfacetofcopyingalgorithmscanbeimproveduponbytakingintoaccounttwofactsthathave
denverj
·
2011-11-23 14:00
JVM学习
笔记-分代收集器(Generational Collectors)
Generational Collectors One disadvantage of simple stop and copy collectors is that all live objects must be copied at every collection. This facet of copying algorithms can be improved upo
denverj
·
2011-11-23 14:00
Collector
JVM学习
笔记-拷贝收集器(Copying Collectors)
CopyingCollectorsCopyinggarbagecollectorsmoveallliveobjectstoanewarea.Astheobjectsaremovedtothenewarea,theyareplacedsidebyside,thuseliminatinganyfreespacethatmayhaveseparatedthemintheoldarea.Theoldare
denverj
·
2011-11-22 16:56
java
jvm
垃圾收集
gc
JVM学习
笔记-拷贝收集器(Copying Collectors)
Copying Collectors Copying garbage collectors move all live objects to a new area. As the objects are moved to the new area, they are placed side by side, thus eliminating any free space th
denverj
·
2011-11-22 16:00
Collector
JVM学习
笔记-拷贝收集器(Copying Collectors)
阅读更多CopyingCollectorsCopyinggarbagecollectorsmoveallliveobjectstoanewarea.Astheobjectsaremovedtothenewarea,theyareplacedsidebyside,thuseliminatinganyfreespacethatmayhaveseparatedthemintheoldarea.Theol
denverj
·
2011-11-22 16:00
JVM学习
笔记-压缩收集器(Compacting Collectors)
CompactingCollectorsGarbagecollectorsofJavaVirtualMachineswilllikelyhaveastrategytocombatheapfragmentation.Twostrategiescommonlyusedbymarkandsweepcollectorsarecompactingandcopying.Bothoftheseapproache
denverj
·
2011-11-22 16:17
java
jvm
垃圾收集
gc
JVM学习
笔记-压缩收集器(Compacting Collectors)
阅读更多CompactingCollectorsGarbagecollectorsofJavaVirtualMachineswilllikelyhaveastrategytocombatheapfragmentation.Twostrategiescommonlyusedbymarkandsweepcollectorsarecompactingandcopying.Bothoftheseappro
denverj
·
2011-11-22 16:00
JVM学习
笔记-压缩收集器(Compacting Collectors)
Compacting Collectors Garbage collectors of Java Virtual Machines will likely have a strategy to combat heap fragmentation. Two strategies commonly used by mark and sweep collectors are compacti
denverj
·
2011-11-22 16:00
Collector
JVM学习
笔记-跟踪收集器(Tracing Collectors)
TracingCollectorsTracinggarbagecollectorstraceoutthegraphofobjectreferencesstartingwiththerootnodes.Objectsthatareencounteredduringthetracearemarkedinsomeway.Markingisgenerallydonebyeithersettingflags
denverj
·
2011-11-22 16:34
java
jvm
垃圾收集
gc
JVM学习
笔记-跟踪收集器(Tracing Collectors)
阅读更多TracingCollectorsTracinggarbagecollectorstraceoutthegraphofobjectreferencesstartingwiththerootnodes.Objectsthatareencounteredduringthetracearemarkedinsomeway.Markingisgenerallydonebyeithersettingf
denverj
·
2011-11-22 16:00
JVM学习
笔记-跟踪收集器(Tracing Collectors)
Tracing Collectors Tracing garbage collectors trace out the graph of object references starting with the root nodes. Objects that are encountered during the trace are marked in some way. Ma
denverj
·
2011-11-22 16:00
Collector
JVM学习
笔记-引用计数收集器(Reference Counting Collectors)
ReferenceCountingCollectorsReferencecountingwasanearlygarbagecollectionstrategy.Inthisapproach,areferencecountismaintainedforeachobjectontheheap.Whenanobjectisfirstcreatedandareferencetoitisassignedto
denverj
·
2011-11-22 15:51
java
jvm
垃圾收集
gc
JVM学习
笔记-引用计数收集器(Reference Counting Collectors)
阅读更多ReferenceCountingCollectorsReferencecountingwasanearlygarbagecollectionstrategy.Inthisapproach,areferencecountismaintainedforeachobjectontheheap.Whenanobjectisfirstcreatedandareferencetoitisassign
denverj
·
2011-11-22 15:00
JVM学习
笔记-引用计数收集器(Reference Counting Collectors)
Reference Counting Collectors Reference counting was an early garbage collection strategy. In this approach, a reference count is maintained for each object on the heap. When an object is
denverj
·
2011-11-22 15:00
reference
jvm学习
笔记总结
为什么要深入学习jvm? 从事java开发有几年的时间了,以前对jvm了解不够深入。项目中遇到一些问题,深刻体会到不是代码层级可以解决的。很多问题难以解决之处在于你发现不了问题源头。例如服务器的tps上不去,瓶颈在哪里?程序内存溢出,什么原因造成的?如何监控程序运行的状况?为此,特意抽出时间,系统学习了jvm的相关原理,希望更深刻得了解java运行的机制。总之,学习jvm,能让你
janeky
·
2011-11-22 00:00
java
虚拟机
jvm学习
笔记(6)类加载机制
简述我们要运行java程序,必须保证jvm已经加载类所需的类。这个过程是怎样的呢类的生命周期包括了装载,连接(包括验证、准备和解析)和初始化加载将二进制字节码读入jvm。包括以下阶段:1.通过类的全限定名获得定义此类的二进制数据流2.将字节流转化为方法区的内部数据结构3.在jvm堆中生成java.lang.Class实例,成为java程序与内部数据结构之间的接口怎么生成二进制流?有很多种方式,例如
janeky
·
2011-11-22 00:00
java
jvm
jvm学习
笔记(5)垃圾收集器介绍
简述: 上一篇系统学习了各种垃圾算法。现在就看看jvm(HopSpot)提供了那些垃圾收集器,怎样搭配使用。先回忆了,然后思考以下问题:新生代和老年代分别用什么算法合适? Serial收集器 略懂英文的同学大概明白这个词的意思,串行,连续的。没错,这个收集器很简单,当要进行gc时,就暂停所有线程。用复制算法执行完,继续所有线程。又用餐巾纸的例子来说明,清洁大妈高喊一声“stop”,然后
janeky
·
2011-11-22 00:00
java
虚拟机
jvm学习
笔记(4)垃圾回收算法分析
简述: 垃圾回收算法有很多种,每种有各自的适用场合,各有千秋,如何在不同的场合搭配使用是我们要考虑的问题 引用计数 这是最简单最原始的算法。原理很简单,对象生成后,有一个相关联的计数器,当有一个地方引用时,计数器加1;当引用失效时,计数器减1。jvm定期扫描对象时,发现计数器为0的对象就可以清除。这个算法的特点是实现简单,速度快。不足之处在于:每次分配和指针操作都需要额外的操作来更新相
janeky
·
2011-11-22 00:00
垃圾回收
jvm学习
笔记(3)内存管理
整体架构当一个java类文件被jvm装载进来,就需要创建对象,涉及到内存管理了。先来看看jvm内部的体系结构pc寄存器对汇编有一定了解的同学都明白这个概念。我们可以简单把它看做是当前线程所执行的字节码的行号。有什么用呢。当执行完一条指令的时候,需要跳转到下一条指令,就得靠它了java虚拟机栈是线程私有的,跟线程的生命周期相同。描述的是一个java方法执行的内存模型:当一个方法被执行的时候,就会创建
janeky
·
2011-11-21 23:00
学习笔记
jvm学习
笔记(2)多线程的相关原理
简介本文是尝试从虚拟机的角度来分析java线程的一些本质线程模型java的线程模型可以通过下图来说明:一个对象都有一个相关的锁,每次只能由获得它的一个线程来操作。获得它的线程可以wait,放弃锁,进入等待区域,待被唤醒notify后,它会重新查看锁的状态,参与锁的竞争虚拟机实现查看class文件的汇编代码,可以看到,进入同步区域和退出同步区域分别由两条指令monitorenter和monitore
janeky
·
2011-11-21 23:00
学习笔记
jvm学习
笔记(1)class文件
简述 class文件是什么?稍微接触过java的同学都会说:就是java源文件编译后的.class文件。这句话虽然对,但是不够准确。其他语言,例如scala,jruby等,都可以编译出class文件。class文件是能被jvm识别和运行的一种文件格式。它是八位的二进制流文件。今天就跟大家一起学习class文件的格式 整体结构 用ultraedit等工具打开class文件,看到
janeky
·
2011-11-21 23:00
java
jvm
深入
JVM学习
笔记 JVM指令介绍
JVM指令介绍栈和局部变量操作1、常量入栈操作 --入栈操作三种方式指明常量的值:常量值隐式包含在操作码内部,常量值在字节码流中如同操作数一样紧随在操作码之后,或者从常量池中取出常量 --Java栈中每一个位置的长度都是一个字长(至少32位宽) --Java源代码中所有的字符串文字最终都作为入口存储与常量池中。如果同一个应用程序的多个类都使用同样的字符串文字,按摩此字符串文字将在使用它的所有类
matchless1688
·
2011-11-18 16:00
java
jvm
深入
JVM学习
笔记 垃圾收集
垃圾收集1、垃圾收集算法 两件事情。首先,必须检测出垃圾对象;其次,必须回收垃圾对象所使用的堆空间并还给程序。 垃圾检测通常通过建立一个根对象的集合并且检查从这些根对象开始的可触及性来实现(跟对象总是可触及的)。 --引用计数收集器:已经不在被接受使用 --跟踪收集器:追踪从根节点开始的对象引用图。 --压缩收集器:它把活动的对象越过空闲区滑动到堆的一端,在这个过程中,堆
matchless1688
·
2011-11-16 10:00
java
jvm
JVM学习
笔记(四)------内存调优
JVM学习
笔记(四)------内存调优首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,
qileilove
·
2011-11-15 15:00
深入
JVM学习
笔记 连接模型
连接模型1、Class文件中的常量池类型的运行时常量池(JVM装载后产生的内部版本的常量池,是一个特定于实现的数据结构)2、动态扩展的两种方法:Class.forName() ClassLoader.loadClass() 区别:前者的单参数或者三参数且initial为true可以保证返回的类型一定被初始化了。后者返回的类型有可能没有初始化,后者适合用户自定义加载机制(特定的装载需求或者安全性考
matchless1688
·
2011-11-15 14:00
java
jvm
JVM学习
笔记(二)------Java代码编译和执行的整个过程
JVM学习
笔记(二)------Java代码编译和执行的整个过程Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示:Java代码编译和执行的整个过程包含了以下三个重要的机制
qileilove
·
2011-11-14 10:00
JVM学习
笔记(一)------基本结构
JVM学习
笔记(一)------基本结构从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别对于JVM自身的物理结构
qileilove
·
2011-11-11 10:00
深入
JVM学习
笔记 类型生命周期
JavaClass文件1、Class文件中的内容结构列表 --magic(魔数)OXCAFEBABE 用于区分JAVAClass文件和非JAVAClass文件 --minorversion/majorversion 用于检测Class文件版本号是否属于JVM可以处理的范围 --constantpoolcount/constantpoo
matchless1688
·
2011-11-10 12:00
java
虚拟机
JVM学习
笔记-动态连接和解析(Dynamic Linking and Resolution)
WhenyoucompileaJavaprogram,yougetaseparateclassfileforeachclassorinterfaceinyourprogram.Althoughtheindividualclassfilesmayappeartobeindependent,theyactuallyharborsymbolicconnectionstooneanotherandtoth
denverj
·
2011-11-08 11:07
java
jvm
连接模型
JVM学习
笔记-动态连接和解析(Dynamic Linking and Resolution)
When you compile a Java program, you get a separate class file for each class or interface in your program. Although the individual class files may appear to be independent, they actually harb
denverj
·
2011-11-08 11:00
dynamic
JVM学习
笔记-动态连接和解析(Dynamic Linking and Resolution)
阅读更多WhenyoucompileaJavaprogram,yougetaseparateclassfileforeachclassorinterfaceinyourprogram.Althoughtheindividualclassfilesmayappeartobeindependent,theyactuallyharborsymbolicconnectionstooneanotherand
denverj
·
2011-11-08 11:00
JVM学习
笔记-属性格式(Attributes Types)
Attributes The Java Virtual Machine specification defines eight types of attributes, shown in Table 6-25. All Java Virtual Machine implementations must recognize three of these attributes:
denverj
·
2011-11-07 12:00
attribute
JVM学习
笔记-属性(Attributes)
Attributes As mentioned above, attributes appear in several places inside a Java class file. They can appear in the ClassFile, field_info, method_info, and Code_attribute tables. The Code_a
denverj
·
2011-11-07 12:00
attribute
JVM学习
笔记-方法(Methods)
Methods Each method declared in a class or interface or generated by the compiler is described in the class file by a method_info table. The two types of compiler-generated methods that may
denverj
·
2011-11-07 11:00
method
JVM学习
笔记-字段(Fields)
Each field (class variable and instance variable) declared in a class or interface is described by a field_info table in the class file. The format of the field_info table is shown in Table 6-
denverj
·
2011-11-07 11:00
Field
JVM学习
笔记-Class文件(Class File)
WhatisaJavaClassFile?TheJavaclassfileisapreciselydefinedbinaryfileformatforJavaprograms.EachJavaclassfilerepresentsacompletedescriptionofoneJavaclassorinterface.Thereisnowaytoputmorethanoneclassorin
denverj
·
2011-11-05 14:00
Class文件
JVM学习
笔记-特殊字符串(Special Strings)
Special Strings 特殊字符串 The symbolic references contained in the constant pool involve three special kinds of strings: fully qualified names, simple names, and descriptors. All symbolic
denverj
·
2011-11-05 14:00
String
上一页
25
26
27
28
29
30
31
32
下一页
按字母分类:
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
其他