Java代码 Stringstr=newString("aaa");这行代码究竟创建了几个String对象呢?答案是2个,而不是3个。由于 new String("aaa")相当于"aaa"与一个就是创建出来的放在堆时原实例对象,而另一个就是放在常量池中的 "aaa" 对象,当然这里的str本身只是...
分类:
其他好文 时间:
2014-07-19 21:00:30
阅读次数:
221
http://www.cnblogs.com/devinzhang/archive/2012/01/25/2329463.htmlJava中内存分析: 栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放....
分类:
编程语言 时间:
2014-07-19 20:34:14
阅读次数:
181
Java中String是一个特殊的包装类数据有两种创建形式:String s = "abc";String s = new String("abc"); 第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在字符串常量池中,如果没有则在栈中创建三个char型的值 '...
分类:
编程语言 时间:
2014-07-16 19:24:30
阅读次数:
299
JVM运行时数据区的内存模型由五部分组成:【1】方法区【2】堆【3】JAVA栈【4】PC寄存器【5】本地方法栈对于String s = "haha" ,它的虚拟机指令:0: ldc #16; //String haha2: astore_13: return对于上面虚拟机指令,其各自的指令流程在《深...
分类:
编程语言 时间:
2014-07-16 18:48:18
阅读次数:
217
return 语句的作用:1.返回值 2.结束某个方法的运行;
局部变量必须要初始化,成员变量系统会默认初始值;
栈:自动分配连续的空间,后进先出,放置局部变量
堆:不连续,放置new出来的变量
堆里面还有方法区,类的是、代码信息,static变量,常量池(字符串常量等)
...
分类:
编程语言 时间:
2014-07-16 12:56:04
阅读次数:
237
String类的一些特点 1:它是一个特殊类,一旦被初始化,内容就不可以被改变,一般有两种初始化的方式 --| String s1 = “abc”;//abc存在字符串常量池中,它就是一个对象,以后有代码需要使用到abc的话,可以直接使用,不用在去开辟字符串abc的空间 --| String s2 ...
分类:
其他好文 时间:
2014-06-27 11:18:49
阅读次数:
148
首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域
方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域,叫做方法区。
常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息。
堆区:用于存放类的对象实例。
栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量、方法...
分类:
编程语言 时间:
2014-06-14 00:36:36
阅读次数:
357
字符串最大的特点是:一旦被初始化就不可以被改变方法区:方法区,静态区,常量池。 String
s =new String(); String s0= "";//两者效果一样,但这个方便, String s1 =
"abc"//s1是什么?s1是一个类类型变量(应指向对象),"abc"是一个对象,字符...
分类:
其他好文 时间:
2014-06-11 08:11:25
阅读次数:
271
我们都知道,Java中的String类具有如下特性:String是一个不可变类,当直通过用字符串方式使用String对象时,Jvm实际上在内存中只存有一份,且存在字符串常量池中。当对字符串直接进行修改时(如直接联接另一个字符串常量),Jvm会首先去字符串常量池中查找是否已经存在此字符串,不存在则创建...
分类:
其他好文 时间:
2014-06-06 17:25:03
阅读次数:
281
java 中的内存分为四个部分:stack(栈),heap(堆),data segment, codesegment。
stack(栈):存放基本类型的数据和对象的引用,即存放局部变量。
heap(堆)存放 new 出来的东西。
data segment(数据区):分为静态区和常量区(常量池):
静态区(static segment):存放在对象中用 static 定义的静态成员(即静态变量,如果该静态变量是基本类型变量,则将变量名和值都存入静态区中,如果是引用类型则指向 new 出来的对象。
...
分类:
编程语言 时间:
2014-06-01 15:09:19
阅读次数:
348