java - 关于关键字,Java 中的 "new"

标签 java

<分区>

Possible Duplicate:
Questions about Java's String pool

请问这两者有什么区别。

(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? 

最佳答案

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[] 对象。

关于java - 关于关键字,Java 中的 "new",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9946535/

相关文章:

java - SQL从一个表中删除+一个可连接的表?

java - FTPSClient 无法连接

java - 为什么我的LibGDX项目没有从Overlap2D运行时看到Overlap2DStage类,即使我将其添加为Gradle依赖项也是如此?

java - 如何使用一个 WatchService 注册多个文件夹

java - android登录页面 "Unfortunately app is not respinding "错误

java - selectOneMenu 和 selectItems

java - 关于CodeChef上的 "Uncle Johnny"问题_

Java SimpleDateFormat 显示的日期不正确

java - 如何使用 IntelliJ IDEA 执行 mvn 命令?

java - 循环中的嵌套数组如何工作