首先看看下面的图,看清楚了图咱们要说的知识点也就说说清楚了一半
int a=10;
String b="ss";
String c=new String("kkk");
Person d=new Person("dlf");
String e=new String("kkk");
String f="ss";
jvm中有堆heap,栈stack,常量池constant...
分类:
其他好文 时间:
2014-10-10 19:14:44
阅读次数:
219
String a="a";String b="b";String c="ab";String d="ab";String e=a+b;程序中用来存放数据的内存分为四块1、全局区(静态区)(static)2、文字常量区 :常量字符串就是放在这块区域,即是我们常说起的常量池。3、栈区(stack):存放...
分类:
编程语言 时间:
2014-10-07 23:48:34
阅读次数:
222
下面是一些String相关的常见问题:String中的final用法和理解final StringBuffer a = new StringBuffer("111");final StringBuffer b = new StringBuffer("222");a=b;//此句编译不通过final ...
分类:
编程语言 时间:
2014-10-07 22:33:14
阅读次数:
258
一、String类概述1.String对象一旦创建就不能改变。2.字符串常量池。字符串常量池的特点:池中有则直接使用,池中没有则创建新的字符串常量。例1: 1 public class StringDemo 2 { 3 public static void main(String args[...
分类:
编程语言 时间:
2014-10-05 02:40:17
阅读次数:
426
方法区和运行时常量池溢出由于运行时常量池是方法区的一部分,因此这两个区域的溢出测试就放在一起进行。前面提到JDK 1.7开始逐步“去永久代”的事情,在此就以测试代码观察一下这件事对程序的实际影响。String.intern()是一个Native方法,它的作用是:如果字符串常量池中已经包含一个等于此S...
分类:
其他好文 时间:
2014-09-24 11:49:36
阅读次数:
272
1. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)2. 堆:存放所有new出来的对象。3. 静态域:存放静态成员(static定义的)4. 方法:被所有线程共享,class方法等。一、数据类型Java...
分类:
其他好文 时间:
2014-09-10 17:29:40
阅读次数:
197
在本文描述它们的区别之前,先来了解一下JVM运行时数据区的内存模型。 《深入JAVA虚拟机》书中是这样描述的:JVM运行时数据区的内存模型由五部分组成: 【1】方法区 【2】堆 【3】JAVA栈 【4】PC寄存器 【5】本地...
分类:
其他好文 时间:
2014-09-09 13:54:19
阅读次数:
201
2014年8月29日参考书籍:深入理解java虚拟机我们可以用javap-verbose字节码来直观的查看字节码文件,参考我在《常量池》中的描述,很容易就可以看得懂javap结果中的常量池。那么方法区呢?应该怎么看?这部分在我的参考书籍中有详细的描述,下边,我总结性的描述一下。为了能够..
分类:
编程语言 时间:
2014-09-09 13:33:39
阅读次数:
278
在加载阶段主要用到的是方法区:方法区是可供各条线程共享的运行时内存区域。存储了每一个类的结构信息,例如运行时常量池(Runtime Constant Pool)、字段和方法数据、构造函数和普通方法的字节码内容、还包括一些在类、实例、接口初始化时用到的特殊方法。如果把方法的代码看作它的“静态”部分,而...
分类:
其他好文 时间:
2014-09-09 11:52:08
阅读次数:
201
1、JDK、JRE、JVM之间的关系。JDK包含JRE和其它开发工具库如编译器、调试期,jConsele性能检测工具等2、JVM的构成:类装载器子系统、执行引擎、运行时数据区,如下图:3、JVM规范中运行时数据区组成:(1)方法区:存储元数据如类信息、静态变量、常量池,线程共用(2)堆:存储对象实例...
分类:
其他好文 时间:
2014-09-03 19:43:17
阅读次数:
207