java虚拟机分析
pl在之心
立足当下
展开
-
JVM解析01-平台无关性
两情若是久长时,又岂在朝朝暮暮。 我们时常听到一个词语“跨平台”,那么什么是跨平台呢? 从字面意思上看,也就是相同的字节码(以java编译后的字节码为例)可以在不同的操作系统环境上运行。这究竟是怎么做到的呢?学习了面向对象的特征,我们都知道面向接口编程,也就是设计模式中的”具体的依赖于抽象“这个原则。那么这个设计原则有什么好处呢?其实,说白了,也就是多态的优点原创 2015-11-11 09:58:55 · 497 阅读 · 0 评论 -
java虚拟机02-体系结构
除了指令集,JVM主要由四部分构成:类加载器,执行引擎,内存区域,本地方法调用。类加载器:在JVM启动或者类运行时,将需要的class加载到内存中。执行引擎:负责执行java字节码中包含的字节码指令,相当于实际机器上的CPU。内存区:将内存划分为多个区,来模拟实际机器上的存储,记录和调度功能模块。本地方法调用:调用c或c++实现的本地方法代码并返回结果。执行引擎原创 2015-11-11 13:14:49 · 377 阅读 · 0 评论 -
java虚拟机02-体系结构
java虚拟机02-体系结构除了指令集,JVM主要由四部分构成:类加载器,执行引擎,内存区域,本地方法调用。 类加载器:在JVM启动或者类运行时,将需要的class加载到内存中。 执行引擎:负责执行java字节码中包含的字节码指令,相当于实际机器上的CPU。 内存区:将内存划分为多个区,来模拟实际机器上的存储,记录和调度功能模块。 本地方法调用:调用c或c++实现的本地方法代码并返回结果。原创 2015-11-11 19:15:39 · 334 阅读 · 0 评论 -
java源码分析07-ArrayList
我爱你是多么清楚多么坚定的信仰!今天我们来看下ArrayList的内部结构。1.类的结构2.类结构解析属性:serialVersionUID:序列化ID默认容量为10private static final int DEFAULT_CAPACITY = 10; /** * Shared empty array instance used f原创 2015-11-14 21:26:53 · 317 阅读 · 0 评论 -
java虚拟机分析-字节码解析
难道我就这样过完这一生!java类编译成class文件。以16机制的形式存在魔数:CAFEBABE 表名这是一个java字节码文件。java版本号:Minor version,major version常量池大小:两个字节头部为3个字节(常量类型,所属类,内容)Methodref class #4 name-and-type #15 代表这个一个方法,她属于#4类,原创 2015-11-15 12:03:31 · 597 阅读 · 0 评论 -
java虚拟机分析-字节码02
类信息描述后面就是每个Fields和Methods具体定义了。属性个数: 0 fields方法个数:2 methodsMethod 0:access flags=1 访问修饰符name=#7>这个方法的名称descriptor=#8这个方法的类型描述,也就是NameAndType1 field/method attributes:field/met原创 2015-11-15 12:55:48 · 379 阅读 · 0 评论 -
java虚拟机分析-字节码指令集
等待是一种煎熬,也是一种成长。类相关的JVM指令checkcast class 检查类型转换,检验未通过将抛出ClassCastExceptiongetfield class/field desc 获取指定类的实例域,并将其值压入栈顶getstatic class/field desc 获取指定类的静态域,并将其值压入栈顶instanceof class 检验原创 2015-11-17 14:59:18 · 735 阅读 · 0 评论 -
G1垃圾回收器
1.说明CMS:Concurrent Mark and Sweep 并发标记整理垃圾回收器G1: Garbage-First G1垃圾回收器2.异同相同: - 都属于回收老年代的回收方法 区别: - 堆内存空间分配 - 垃圾收集的方式 - G1虽然保留了CMS关于代的概念,但是代已经不是物理上连续区域,而是一个逻辑的概念。2.1 堆内存分布CMS:内存分为新生代,老年代和永久代G1原创 2016-11-13 15:45:16 · 532 阅读 · 0 评论 -
java编码解码过程
最近做项目的时候,有时会遇到中文乱码的问题,网上查询了很多资料,发现大多都是只讲解决方案,并没有讲到为什么要使用这种方案,这种方案的原理是什么? 最典型的就是连接数据库的URL,我们一般把它放到classpath下的db.properties中,然后尽管我们的java代码设置了UTF-8,JSP也设置了UTF-8,数据库也设置了UTF-8,但是插入数据到数据库中仍然会...原创 2015-12-26 12:35:15 · 4840 阅读 · 2 评论