`
文章列表
jvm class与instance运行时结构

jvm dll加载分析

    博客分类:
  • jvm
jvm dll加载分析
struct ClassFile { u4 magic;       //识别Class文件格式,具体值为0xCAFEBABE, u2 minor_version;            // Class文件格式副版本号, u2 major_version;            // Class文件格式主版本号, u2 constant_pool_count; //  常数表项个数, cp_info **constant_pool;// 常数表,又称变长符号表, u2 access_flags;               //Class的声明中使用的修饰符掩码, u2 this_class ...
JVM 学习笔记JVM 学习笔记
第1章数制1 1.1简介1 1.2按位记数制1 1.3各数制的算术规则4 1.4数制转换6 1.5Horner法9 1.6有符号二进制数10 1.6.1符号—绝对值表示法10 1.6.22的补码表示法11 1.6.31的补码表示法13 1.6.4加n表示法14 1.7用2的补码加法计算减法14 1.82的补码和无符号数的范围15 1.9扩展2的补码和无符号数16 1.10溢出17 1.10.1有符号数溢出17 1.10.2无符号数溢出18 1.11分析2的补码数20 1.12加法器电路21 1.13门23 1.14用加法器执行减法24 1.15比较有符号数26 1.16比较无符号数27 1.17 ...
JAVA在内存中由 Perm 和 Heap 组成. 其中 Heap = {Old + NEW = { Eden , from, to } } JVM内存模型中分两大块,一块是 NEW Generation, 另一块是Old Generation. 在New Generation中,有一个叫Eden的空间,主要是用来存放新生的对象,还有两个Survivor Spaces(f ...
好言归正传,按照Sam Borman的说法IBM java 1.3.0的GC是HotSpot的2倍,如果在多对称架构中性能更加的高。IBMJava如何做到高性能的GC的呢?我把他们的这篇2万多字的文章浓缩一下介绍给大家。 IBM JVM的GC分为三个步骤,Mark phase(标记),Sweep phase(清扫),Compaction phase(内存紧缩). 在了解这些过程之前,我们先看一下IBMJava中的对象的Layout和Heap lay out 一个Java对象在IBM vm中的结构如下 1.size+flags 2.mptr 3.locknflags 4.object ...
Tomcat6.0配置SSL 一、为了节约时间,我这里就只根据我的配置过程进行描述,读者根据各自情况自己分析。 1、在命令行中进入%CATALINA_HOME%/bin目录下执行以下命令: (1)%CATALINA_HOME%/bin> keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600 此时会在%TOMCAT_HOME%/bin下生成server.keystore 文件。 注:参数 -val ...
目录     第1章 MySQL的前世今生  1.1 MySQL的历史  1.2 存储引擎  1.3 MySQL市场  1.4 后话 第2章 数据库系统的立体视图  2.1 数据库系统架构  2.2 数据库系统的分类   2.2.1 面向对象型数据库   2.2.2 关系型数据库   2.2.3 对象关系型数据库  2.3 关系型数据库系统架构   2.3.1 客户端应用程序   2.3.2 查询接口   2.3.3 查询语句处理   2.3.4 查询优化   2.3.5 语句执行   2.3.6 读写文件   2.3.7 模块协作   2.3.8 RDBMS的层次结构  2.4 MySQL数据 ...
事务之间的相互影响可能导致数据库状态的不一致,即使各个事务能保持状态的正确性,而且也没有任何故障发生。因此,不同事务中各个步骤的执行顺序必须以某种方式进行规范。控制这些步骤的功能由DBMS的调度器部件完成,而保证并发执行的事务能保持一致性的整个过程称为并发控制。调度器的作用如图1所示。    首先讨论如何保证并发执行的事务能保持数据库状态的正确性。抽象的要求称为可串行性,另外还有一个更强的、重要的条件为冲突可串行性,它是大多数调度器所真正实现的。我们考虑实现调度器的最重要技术:封锁、时间戳和有效性确认。 1.串行调度和可串行化调度 1.1 调度    调度是一个或多个事务的重要操作按时间 ...
我们知道Linux是借用虚拟文件系统作为上层抽象的管理者来统一支持下层的各具差异的逻辑文件系统。应用程序要访问任何已经注册并挂载的逻辑文件系统相应物理存储外设都是通过VFS层次提供的统一调用接口来实现。Linux中对物理外存上的数据块采用的组织管理方式是借助称为索引节点(inode)的数据结构,因此当应用进程要与具体的逻辑文件系统进行数据存取时,相应的逻辑文件系统将需要提供操作例程接口来实施具体的任务,其中会涉及到从VFS的inode到LFS inode的寻址过程,在根据入口参数中指定的VFS inode结构提供的信息定位到LFS的对应inode后,才能进而依据索引节点去寻找并存取相应的数据块。 ...
聚集索引,是一种指明表数据物理存储顺序的索引.在聚集索引中,行的物理存储顺序与索引顺序完全相同,即索引的顺序决定了表中行的存储顺序.表数据按照指定作为聚集索引的一个或多个键列排序并存储.聚集索引类似于一本字 ...
位图(bitmap)索引是另外一种索引类型,它的组织形式与B树索引相同,也是一棵平衡树。与B树索引的区别在于叶子节点里存放索引条目的方式不同。从前面我们知道,B树索引的叶子节点里,对于表里的每个数据行,如果被索引列的值不为空的,则会为该记录行在叶子节点里维护一个对应的索引条目。 而位图索引则不是这样,其叶子节点里存放的索引条目如下图所示。       假设某个表T里所有的记录在列C1上只具有三个值:01、02和03。在表T的C1列上创建位图索引以后,则叶子节点的内容如图9-14所示。可以看到,位图索引只有三个索引条目,也就是每个C1列的值对应一个索引条目。位图索引条目上还包含表里第一条记录所 ...
Mysql源代码分析系列(2): 源代码结构 Mysql源代码主要包括客户端程序代码,服务器端代码,测试工具和一些库构成,下面我们对比较重要的目录做些介绍。 BUILD 这个目录在本系列的上篇文章中我们仔细看过,内含各种平台的编译脚本,这里就不仔细说了。 client 这个目录下有如下比较让人眼熟的文件: mysql.cc, mysqlcheck.c, mysqladmin.cc, mysqlshow.c,等等,如果你编译一下就会发现那些眼熟的程序也出现了,比如mysql。明白了吧,这个目录就是那些客户端程序所在的目录。这个目录的内容也比较少,而且也不是我们阅读的重点。 ...
事务之间的相互影响可能导致数据库状态的不一致,即使各个事务能保持状态的正确性,而且也没有任何故障发生。因此,不同事务中各个步骤的执行顺序必须以某种方式进行规范。控制这些步骤的功能由DBMS的调度器部件完成,而保证并发执行的事务能保持一致性的整个过程称为并发控制。调度器的作用如图1所示。    首先讨论如何保证并发执行的事务能保持数据库状态的正确性。抽象的要求称为可串行性,另外还有一个更强的、重要的条件为冲突可串行性,它是大多数调度器所真正实现的。我们考虑实现调度器的最重要技术:封锁、时间戳和有效性确认。 1.串行调度和可串行化调度 1.1 调度    调度是一个或多个事务的重要操作按时间排序 ...
Global site tag (gtag.js) - Google Analytics