关于String s=new String("xyz")创建了几个String对象
来源:百度知道 编辑:UC知道 时间:2024/05/07 15:07:02
为啥要创建"xyz"对象而不是直接把"xyz"值直接放到创建好的s的堆内存中
难道new String("xyz")等价于String a="xyz";new String(a);
难道new String("xyz")等价于String a="xyz";new String(a);
2个对象 堆区中1个,常量池中1一个
String a="xyz";首先会到常量池中去查找,如果存在就不再分配,如果不存在就分配,常量池中的数据是在编译期赋值的,也就是生成class文件时就把它放到常量池里了
创建了两个对象,"xyz"在常量区分配的,new在堆里分配的
他们之间最大的区别就是所存放的位置不同,一个是堆中另一个是栈中,这就决定了他们的访问速度不一样了。
而且,new 了之后忘记了释放空间,就会一直占着个空间不妨的,不过这又有利于共享,这就看你自己具体应用了。
关于String str=new String("123");
中行笔试题:String s=new String("xyz")创建了几个String对象
String s="abc"与String s= new String("abc")有什么区别
String s = new String("abc");为什么创建了两个字符串对象?
String s="你好"和String str=new String("你好")有什么区别?
String str1=new String("abc");
string s=null与string s=""
String a=new String();什么时候用到,一般不就是String a 吗?
请问java里string xxx和string xxx=new string的几个问题?
String a="abc"和String a=new String("abc");区别在哪呢?