- 博客(7)
- 收藏
- 关注
原创 class文件结构[5] 局部变量表的槽位复用及其对垃圾回收的影响
long、double类型在局部变量表中需要占用2个槽位其他类型如int、引用类型需要占用1个槽位 非static的成员方法的第一个局部变量都是this引用 以上一节的例子为例一共占用5个槽位,其中D(double)类型的arg1占用2槽位,其余各占用1个槽位。 局部变量表中的槽位是可以复用的如果一个局部变量过了其作用范围,那么在其作
2017-10-31 10:35:04 2972 1
原创 class文件结构[4]
【参考链接】深入理解Java Class文件格式(三)http://blog.csdn.net/zhangjg_blog/article/details/21557357深入理解Java Class文件格式(四)http://blog.csdn.net/zhangjg_blog/article/details/21658415深入理解Java Class文件格式(五)http://bl
2017-10-31 10:25:20 2198
原创 class文件结构[3] 常量池
【参考链接】《Java虚拟机原理图解》 1.2、class文件中的常量池http://blog.csdn.net/luanlouis/article/details/40148053《Java虚拟机原理图解》1.2.2、Class文件中的常量池详解(上)http://blog.csdn.net/luanlouis/article/details/39960815《Java虚拟机原理
2017-10-31 10:16:09 350
原创 class文件结构[2] static final、static、final、普通类型成员变量的赋初值
不考虑作用域修饰符,成员变量的类型有:static final 类型、仅static类型、仅final类型、普通类型并且,我们在定义成员变量的时候,还可以通过=赋初值。(其中包含final时强制要求赋初值)那么,这些赋值操作都是在哪个阶段完成的呢? 按照执行的先后顺序1. 对于staticfinal类型成员变量,会在class文件的Fields中增加Const
2017-10-31 10:07:59 2528 1
原创 class文件结构[1] 编译前预处理
1. 如果一个类没有显式继承自Object,则会自动为其加上继承自Object以如下代码为例 Java Code 1234 package com.test.a;public class Test {} 2. 在创建一个对象时,必须先创建他的父对
2017-10-31 10:02:16 2296
原创 class文件结构[0]
.java源代码文件经过编译以后会生成.class字节码文件。可以使用WinHex直接以十六进制形式查看也可以使用javap命令和jclasslib软件(注意64位操作系统匹配,和版本不要太低,我使用低版本的时候出现过字节码指令显示错误的问题) 后面讲解的时候,不打算详细到具体字节所以主要通过javap命令和jclasslib软件。这两个方式的展示各有优缺,后续展示常量池的时候
2017-10-31 09:59:26 2185
原创 流程概述:编译、装载、执行
【参考链接】走进 Javahttp://wiki.jikexueyuan.com/project/java-vm/overwise.htmlJava代码编译和执行的整个过程http://wiki.jikexueyuan.com/project/java-vm/java-debug.html 从编写Java源代码,到运行Java程序,大体上会经历3个阶段:编译、加载、执行
2017-10-31 09:57:20 2178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人