伙计们这两者有什么区别。
(1)
String s = new String("hello"); // creating an object on heap then assign that object to the reference s.
(2)
String s = "hello" // did I make an object here?? Im not using the word new.
也是数组示例
int x[] = {1, 2, 3, 4, 5}; // did I make object here?
答案 0 :(得分:4)
String s = "hello"
正在将string literal“你好”分配给s
使用new
关键字,除了字符串文字外,还可以创建一个新对象。
请注意:
String s = "hello";
System.out.println(s == "hello");
s = new String("hello");
System.out.println(s == "hello");
最有可能产生
true
false
由于s
引用了字符串文字“hello” - 你在第一种情况下得到了一个身份,而在第二种情况下它是一个新对象,并且没有身份 - 这是两个不同的对象,这是发生的包含相同的值。
关于你的数组问题:是的,创建了一个int[]
对象。
答案 1 :(得分:0)
答案 2 :(得分:0)
关于字符串构造函数,你总是有对象。
当你说
时String test = "test";
你创建一个内容为“test”的字符串对象,但是当你说
时String test= new String("test");
您创建一个内容为“test”的字符串对象,并将其作为参数传递给字符串 构造函数来创建一个新的String对象。所以最后你有 创建了2个字符串对象。
构造函数的代码是:
public String(String original){.....}
在大多数情况下,字符串构造函数被认为是无用的。
在这个帖子中,他们描述了什么时候可以使用