内存空间里面有4个,数据域,代码域,栈,堆。
我想问一下数据域是放常量和静态属性的,除了这些之外,如下面int a = 6; //在栈里面存放了a = 6
String s = new String("a"); // 栈里面放了s存放引用地址,堆里面有一块new的空间存放a值如果改为
final int a = 6; // a的值6会放在数据域(或者常量池)吗?
final String s = new String("a"); // s 的引用是不能修改的,会放在数据域(或者常量池)吗?还有static代码块也是放在代码块中的吗?
一个对象new 了多遍,在代码域都只有一个该对象的代码吗?
我想问一下数据域是放常量和静态属性的,除了这些之外,如下面int a = 6; //在栈里面存放了a = 6
String s = new String("a"); // 栈里面放了s存放引用地址,堆里面有一块new的空间存放a值如果改为
final int a = 6; // a的值6会放在数据域(或者常量池)吗?
final String s = new String("a"); // s 的引用是不能修改的,会放在数据域(或者常量池)吗?还有static代码块也是放在代码块中的吗?
一个对象new 了多遍,在代码域都只有一个该对象的代码吗?
解决方案 »
- 关于List 的 removeAll 在线等~~ [40分]
- Java中Menu时间
- 用SWING实现一个outlook主界面...
- 在Linux系统下,如何用java获取一个已经存在的文件的创建时间?
- class.getName()是个什么意思?在什么地方用到?
- 百思不得其解,还请高手指教!!!
- 请教有关LDAP的几个问题。。。
- 我的properties的格式是这样子的。。如何方便读取和使用??急~~~~~~~~~~~~~~~
- 求涂鸦板程序代码!有的大哥帮帮忙!
- 存储过程的问题。
- 知道某个类,怎样找它所在的包?
- java版排序冠军的代码,我怎么没看懂。。。。 大家帮忙解释一下如何实现排序的??
楼主【woodytid】截止到2008-06-24 23:28:58的历史汇总数据(不包括此帖):
发帖数:7 发帖分:140
结贴数:0 结贴分:0
未结数:7 未结分:140
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
应该是一个类new了多遍吧?
只有String有常量池
并且,String需要在常量池中检索的话,就不能用new来声明
String a = "abc";
String b = "abc";
这2者引用相同,都是常量池中的abc的引用String a = "abc";
String b = new String("abc");
这2者就不同,采用new申明的string永远是重新划分内存区的常量池检索和static或者final没有关系,常量池只关心字面量
stack
heap
datasegment
codesegment
至于具体的,楼主可以翻一下书