请问,String str = "abc";
这个语句声明了几个对象?据说是两个(一个是引用,一个是内容为"abc"的字符串)请高手解释一下
这个语句声明了几个对象?据说是两个(一个是引用,一个是内容为"abc"的字符串)请高手解释一下
解决方案 »
- 加了package后怎么运行
- netbeans 读取txt文件乱码
- ANT编译内存益处问题,困扰很久,能解决这个问题我有的分要多少都给
- Math.random() 产生随机数问题
- 两个计算机,A计算机不停的给B计算机传输 二进制数据。 要用程序实现,怎样才能达到这种要求呢?java.io包中的输入、输出类太多了,不知道选取哪个
- StackOverflowError 应该没用到递归
- 哪里有允许上传一个90M文件的免费空间?
- jsmooth做的java exe文件不能运行,提示错误为"could not find the main class,program will exit"
- 用网袋布局管理器制作QQ登陆界面不能实现换行,请指正代码,谢谢大家
- 帮帮我吧,高手们!急啊,线程问题
- 请问怎么获得鼠标在pdf文件上左键点击下去的坐标啊?急!!!!
- 奇怪的报错!
String a=new String("abc");//产生两个对像,一个在字符串常量池中,一个是在常规内存中
"abc"是object
object variable里存的是reference,所以也就把它叫做reference.翻译过来的说法就有点乱了..
请问字符串常量池在哪?
说详细点吧 这说法头一次听说...
请问字符串常量池在哪?
说详细点吧 这说法头一次听说...
String s1 = "abc";
String s2 = new String ("abc");这两个并不相等,
第一个声明了一个对象,就在常量池中。第二个我觉得也是声明了一个,只是在内存中的“abc”看看下面这个程序
public class Test {
public static void main (String args[]) {
String s1 = "abc";
String s2 = new String ("abc");
String s3 = "abc";
String s4 = new String ("abc");
System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(s2==s4);
}
}结果是false
true
falses1 和 s3 的引用都是指向常量池中的abc
s2 和 s4 分别指向不同的内存池,相互独立。所以 常规上,String s1= "abc" 比String s1= new String ("abc");效率要高,虽然后者看起来更符合对象的声明办法。
String s1=new String("abc") 这是两个对象
lc328(FEEL) ( ) 信誉:100 Blog 2007-04-01 23:02:16 得分: 0
String s1="abc" 这是一个对象
String s1=new String("abc") 这是两个对象
------------------------------------
我无法想通的就是为什么String s1=new String("abc")是两个对象注意,我们讨论的并不是在之前已经有“abc”的情况下,用String s1=new String("abc")方法和String s1 = "abc";方法的区别,这个我知道。。我们仅仅讨论String s1=new String("abc")这句话有几个对象产生。根据公认的知识,String(应该说是所有对象吧)的内容(content)是存放在堆中的,而引用(ref)是放在栈里的,我最开始怀疑,总不能说存在着两部分,就说这一句定义了两个对象吧?
不要局限于这种初级的问题
等你再学段时间 自然而然就懂了
而String s="abc"是直接将abc的引用赋值给s!
它只是声明了一个引用字符串"abc"的变量str
涉及到内存分析.
String str = "abc";str 是分配在栈内存的,而"abc"是分配在数据区 !
str是指向"abc"的引用!这么说不知道对不对? 也是新人....
管java什么事。
最多产生了一个对象 具体问题要具体分析:
String 是一个特殊的类
字符串池中的内容 叫字符面量 内容不能修改
String 用 双引号 赋值 将放入字符串池中 池中没有 就立即创建一个对象
有 就直接拿来用
所以 说 要分情况 但不会产生两个对象的另外 引用 不产生对象
要是栈中已经存在"abc",则一个对象也不产生
要是不存在"abc",产生一个对象