jvm
文章平均质量分 71
xytdatabase
这个作者很懒,什么都没留下…
展开
-
Java类的初始化过程详解
java是多线程的,所以类或者接口的初始化要求仔细的同步,因为同时某个别的线程可能正在试图初始化同一个类或者接口,也有可能作为类或者接口初始化的一部分,要求递归地初始化该类或接口。 要了解类的初始化过程,首先要知道Class对象的状态,class对象的状态有以下几种: 1、被检验和准备,但是没有被初始化; 2、正在被某个特殊的线程T初始化; 3、被完整地初始化并...2010-04-11 17:09:17 · 163 阅读 · 0 评论 -
jvm 垃圾回收
jvm 垃圾回收2009-12-13 22:08:10 · 68 阅读 · 0 评论 -
jvm的线程 分析
jvm的线程 分析java天生就冲着这玩意来的,搞不清楚在当时为啥用线程很多事情都很奇怪,其实怪的是我们就像当时的理论是编译比解释执行快,但是java就是用解释,速度像蜗牛还是能火起来问题是解释执行有那么慢吗?就想翻译,说完了我全部一起翻译,上下文都能理解,还能调优,而解释呢?上下文比较小,能全局优化的可能性比较小,说一句,翻译一句,哈哈天知道,也学sun知道。也罢。我...2009-12-13 21:59:01 · 109 阅读 · 0 评论 -
openjdk源码调试环境搭建
如何下手如何下手1.首先得建立jvm源码调试环境 选择openjdk源码2.建立vs2005工程3.写一个java类4.写一个jni测试调用java类的程序5.结合jvm单步调试这中间的步骤有些复杂,改天再写。...2009-12-13 21:25:48 · 385 阅读 · 0 评论 -
废话分析jvm
jvm是java虚拟机,这个还是要废话一下,语言这东西,翻译,执行,库基本上是必须的java的翻译不是编译,而是解释,热点的是编译?靠,大哥,佛家有云,空即是色,那话都没法说了,java是解释,一句一句的解释,碰到一段熟的,就翻译一下,这个从本质上说java还是整体解释,局部编译而已。翻译执行也在jvm里,也就是我们安装后的一个dll,jvm.dll,还有好几种,什么客户端,服务器端j...2009-12-13 21:25:01 · 105 阅读 · 0 评论 -
jvm jdk jar jni osapi概念
jvmjdkjarjniosapi2009-12-13 21:24:35 · 100 阅读 · 0 评论 -
openjdk 整体架构(概览)
openjdk 整体架构2009-12-13 21:10:55 · 310 阅读 · 1 评论 -
JVM内存结构
(1)类装载子系统 装载 连接 初始化(2)方法区。被所有线程共享。垃圾收集也会清理方法区中的无用类型对象。 a. 类型信息。类加载器加载类时,从类文件中提取出来。 类的完整有效名 ...2010-03-29 15:25:59 · 78 阅读 · 0 评论 -
Java轻量级锁原理详解(Lightweight Locking)
Java轻量级锁原理详解(Lightweight Locking)2010-03-29 15:21:28 · 97 阅读 · 0 评论 -
解析 Java 类和对象的初始化过程
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后,对 JVM 执行过程的关键点进行全面解析,并在文中穿插入了相关 JVM ...2010-03-29 15:15:31 · 65 阅读 · 0 评论 -
解析 Java 类和对象的初始化过程
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后,对 JVM 执行过程的关键点进行全面解析,并在文中穿插入了相关 JVM ...2010-03-29 15:14:15 · 79 阅读 · 0 评论 -
Java偏向锁实现原理(Biased Locking)
[img]http://dl.iteye.com/upload/attachment/226082/f824f942-d2f6-3a90-83db-5c718bb7da25.bmp[/img]Java偏向锁实现原理(Biased Locking)阅读本文的读者,需要对Java轻量级锁有一定的了解,知道lock record, mark word之类的名词。可以参考我的一篇博文:Java...2010-03-29 15:00:09 · 163 阅读 · 0 评论 -
jvm 内存
jint Universe::initialize_heap() { if (UseParallelGC) {#ifndef SERIALGC Universe::_collectedHeap = new ParallelScavengeHeap();#else // SERIALGC fatal("UseParallelGC not supported i...原创 2009-12-13 22:45:21 · 66 阅读 · 0 评论 -
IBM Java Jvm GC实现内幕 (几年前的老文)
好言归正传,按照Sam Borman的说法IBM java 1.3.0的GC是HotSpot的2倍,如果在多对称架构中性能更加的高。IBMJava如何做到高性能的GC的呢?我把他们的这篇2万多字的文章浓缩一下介绍给大家。 IBM JVM的GC分为三个步骤,Mark phase(标记),Sweep phase(清扫),Compaction phase(内存紧缩). 在了解这些过程之前,我们先...2010-04-05 14:39:55 · 198 阅读 · 0 评论 -
JVM内存管理及垃圾回收机制
JAVA在内存中由 Perm 和 Heap 组成. 其中Heap = {Old + NEW = { Eden , from, to } }JVM内存模型中分两大块,一块是 NEW Generation, 另一块是Old Generation. 在New Generation中,有一个叫Eden的空间,主要是用来存放新生的对象,还有两个Survivor Spaces(from,to)...2010-04-06 09:30:20 · 74 阅读 · 0 评论 -
jvm 字节码中文含义
栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将i...2010-04-08 11:31:47 · 232 阅读 · 0 评论 -
诡异的JVM Crash之EXCEPTION_STACK_OVERFLOW
关于JVM的一个常识是:如果对象被意外地持有很容易造成内存泄漏,而如果同时又在不停地生成新对象,就有很大的机率造成内存溢出。通常情况下,这种溢出会导致JVM抛出OutOfMemoryError,然后JVM挂起。可是来试试下面的代码,真是让人有点诧异,分别在JDK1.4、JDK5、JDK6上都表现一致。package crash;public class JVMCrashTe...2010-04-08 11:08:03 · 342 阅读 · 0 评论 -
jvm 初始化
void vm_init_globals() { check_ThreadShadow(); basic_types_init(); eventlog_init(); mutex_init(); chunkpool_init(); perfMemory_init();}jint init_globals() { HandleMark hm;...2010-04-07 16:01:17 · 187 阅读 · 0 评论 -
jvm gc
jvm gc2010-04-06 23:52:44 · 107 阅读 · 0 评论 -
jvm exception
jvm exception2010-04-06 23:52:18 · 129 阅读 · 0 评论 -
jvm method invoke
jvm method invoke2010-04-06 23:51:46 · 124 阅读 · 0 评论 -
jvm interpreter
jvm interpreter解释器的初始化JNI_CreateJavaVM||--> Threads::create_vm | |--> init_globals | |-->interpreter_init | |-->AbstractInterpreter::initialize ...2010-04-06 23:51:12 · 178 阅读 · 0 评论 -
jvm运行时数据结构
jvm运行时数据结构2010-04-06 23:50:09 · 166 阅读 · 0 评论 -
jvm class与instance运行时结构
jvm class与instance运行时结构2010-04-06 23:49:36 · 188 阅读 · 0 评论 -
jvm dll加载分析
jvm dll加载分析2010-04-06 23:48:35 · 184 阅读 · 0 评论 -
java class文件格式
struct ClassFile{u4 magic; //识别Class文件格式,具体值为0xCAFEBABE,u2 minor_version; // Class文件格式副版本号,u2 major_version; // Class文件格式主版本号,u2 constant_pool_count; // 常数表项个数...2010-04-06 23:43:25 · 186 阅读 · 0 评论 -
汇编语言与计算机体系结构--使用C++和Java
第1章数制11.1简介11.2按位记数制11.3各数制的算术规则41.4数制转换61.5Horner法91.6有符号二进制数101.6.1符号—绝对值表示法101.6.22的补码表示法111.6.31的补码表示法131.6.4加n表示法141.7用2的补码加法计算减法141.82的补码和无符号数的范围151.9扩展2的补码和无符号数161.1...2010-04-06 15:16:20 · 703 阅读 · 0 评论 -
Java轻量级锁原理详解(Lightweight Locking)
Java轻量级锁原理详解(Lightweight Locking)大家知道,Java的多线程安全是基于Lock机制实现的,而Lock的性能往往不如人意。原因是,monitorenter与monitorexit这两个控制多线程同步的bytecode原语,是JVM依赖操作系统互斥(mutex)来实现的。互斥是一种会导致线程挂起,并在较短的时间内又需要重新调度回原线程的,较为消耗资源的操作。...2010-03-29 14:43:20 · 88 阅读 · 0 评论 -
jvm内存模型
java内存模型详解内存模型 (memory model) 内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节.不同平台间的处理器架构将直接影响内存模型的结构.在C或C++中, 可以利用不同操作平台下的内存模型来编写并发程序. 但是, 这带给开发人员的是, 更高的学习成本.相比之下, ...2010-03-29 14:39:40 · 74 阅读 · 0 评论 -
openjdk jvm 方法字节码执行过程
openjdk jvm 方法字节码执行过程2010-03-16 17:10:58 · 210 阅读 · 0 评论 -
openjdk 代码解释器
openjdk 代码解释器2010-03-16 17:10:08 · 97 阅读 · 0 评论 -
openjdk运行时 class 与instance
openjdk运行时 class 与instance2010-03-16 17:09:34 · 129 阅读 · 0 评论 -
openjdk classload
openjdk classload不是jdk的classload而已jni的classload写个引子,待续2010-03-16 17:07:56 · 92 阅读 · 0 评论 -
openjdk 运行时内存数据结构
openjdk 运行时内存数据结构oopClassinstancearrayheapstacktlsmarkconstantPoolruntimeconstantPool继续2010-03-16 17:06:28 · 177 阅读 · 0 评论 -
openjdk jvm 字节码
简单测试:1 Test.javapublic class Test { /** * @param args */ public static void main(String[] args) { int a = 0; int b = 1; int c = 10; int d = a ...2010-03-09 09:59:59 · 116 阅读 · 0 评论 -
String对象的理解进行时
深入JAVA虚拟机》书中是这样描述的:JVM运行时数据区的内存模型由五部分组成:【1】方法区【2】堆【3】JAVA栈【4】PC寄存器【5】本地方法栈对于String s = "haha" ,它的虚拟机指令:0: ldc #16; //String haha 2: astore_1 3: return对于上面虚拟机指令,其...2010-03-09 09:45:58 · 78 阅读 · 0 评论 -
opendjk jvm 异常执行分析
openjdk 异常处理流程 { oop except_oop = STACK_OBJECT(-1); //从栈中弹出异常的引用 CHECK_NULL(except_oop); //检查异常引用是否为空 THREAD->set_pending_exception(except_oop,...2010-03-09 09:41:29 · 193 阅读 · 0 评论 -
System.gc()分析
public static void gc() { Runtime.getRuntime().gc(); } if (!DisableExplicitGC) { //如果可以直接进行垃圾回收,则执行下面的一步, -XX:+DisableExplicitGC 选项可以关闭jvm的直接垃圾回收 U...2010-03-09 09:38:23 · 100 阅读 · 0 评论 -
openjdk jvm线程启动
java/lang/Thread.java看起 public synchronized void start() { ..... start0(); // start0为本地方法 private native void start0(); .....} ...2010-03-09 09:22:42 · 153 阅读 · 0 评论 -
openjdk源码分析---类的加载分析
openjdk源码分析---类的加载分析 (*env)->FindClass执行,找到loader实例,进入find_class_from_class_loader,通过SystemDictionary::resolve_or_fail来解释类文件。1.resolve_array_class_or_null2.resolve_instance_class_or_null。...2010-03-09 09:16:12 · 260 阅读 · 0 评论