字节码是编译后的文件,格式固定,对一些个人认为关键的属性做一些总结:1、两个类在编译成Class之后就不存在任何联系了。如果只修改一个字节码文件,对运行时可能会有影响,最好重新进行编译。2、指向常量池的索引值为0的数据,说明它不引用任何常量池项。3、指令码+操作数,..
分类:
其他好文 时间:
2017-01-19 20:09:34
阅读次数:
179
1.String在虚拟机中的实现 特点: ① 不变性,是在多线程的访问中,保持对象的不变性的话就不需要实现同步,省略了同步和锁的等待时间。提高了多线程的访问性能,堆所有想成都是只读的。它的修改操作都是创建新的对象来实现的。 ② 针对常量池的优化,是指两个String对象拥有相同的值时,他们只引用常量 ...
分类:
编程语言 时间:
2017-01-17 20:12:23
阅读次数:
164
转载: http://tech.meituan.com/in_depth_understanding_string_intern.html 引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就 ...
分类:
其他好文 时间:
2017-01-13 00:56:16
阅读次数:
166
运行时常量池(Runtime Constant Pool) 运行时常量池是每一个类或接口的常量池(Constant_Pool)的运行时表现形式,它包括了若干种常量:编译器可知的数值字面量到必须运行期解析后才能获得的方法或字段的引用。 运行时常量池是方法区的一部分。每一个运行时常量池都分配在JVM的方 ...
分类:
其他好文 时间:
2016-12-26 00:45:19
阅读次数:
235
1: String a="123"; String b="12"+"3"; String c="1"+"23"; System.out.println( a==b );true System.out.println( a==c );true 2: String a = "ab"; String bb ...
分类:
其他好文 时间:
2016-12-24 19:53:51
阅读次数:
413
转载:http://blog.csdn.net/zhangjg_blog/article/details/21888943 经过前几篇文章, 终于将常量池介绍完了, 之所以花这么大的功夫介绍常量池, 是因为对于理解class文件格式,常量池是必须要了解的, 因为class文件中其他地方,大量引用了常 ...
分类:
编程语言 时间:
2016-12-20 07:17:21
阅读次数:
217
转载:http://blog.csdn.net/zhangjg_blog/article/details/21658415 前情回顾 在上一篇博客深入理解Java Class文件格式(三) 中, 介绍了常量池中的两种类型的数据项, 分别是 CONSTANT_Utf8_info CONSTANT_Na ...
分类:
编程语言 时间:
2016-12-20 01:27:52
阅读次数:
200
前情回顾 本专栏的前几篇博文, 对class文件中的常量池进行了详细的解释。 前文讲解了常量池中的7种数据项, 它们分别是: 关于这七种数据项, 前面的文章已经讲得很详细了, 不了解的同学请先参阅前面的博文。 此外, 如果想要全面的了解JVM和Class文件格式, 建议按顺序阅读我专栏中的博客。此外 ...
分类:
编程语言 时间:
2016-12-20 01:16:10
阅读次数:
280
java虚拟机的基本结构如图: 1)类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中可能还会存放运行时常量池信息,包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)。 2)java堆在虚拟机启 ...
分类:
其他好文 时间:
2016-12-18 17:20:36
阅读次数:
147
常用类常用类:字符串,包装类,时间日期类,属性文件类字符串:String(StringBuffer,StringBuilder是对String的补充)String是唯一一个可以直接用常量赋值的应用类型的应用类型引用数据类型String常量是一个对象,在内存的字符串常量“池”中、运行时如果要用到某一个 ...
分类:
其他好文 时间:
2016-12-12 22:38:59
阅读次数:
219