专业的JAVA编程教程与资源

网站首页 > java教程 正文

使用“”或构造函数创建Java字符串?

temp10 2024-10-17 16:21:37 java教程 10 ℃ 0 评论

在Java中,字符串可以通过两种方式创建:

使用双引号和使用构造函数有什么区别?

使用“”或构造函数创建Java字符串?

1. 双引号vs构造函数

这个问题可以用两个简单的例子来回答。

列子1

a==b为真,因为a和b在方法区域中引用相同的字符串文字。内存引用是相同的。

当多次创建相同的字符串文字时,只存储每个不同字符串值的一个副本。

这就是所谓的“字符串实习”。

在Java中,所有编译时常量字符串都会自动被挂起。

例子2

c==d为false,因为c和d引用堆中的两个不同对象。不同的对象总是有不同的内存引用。

该图说明了上述两种情况:

2. 运行时字符串实习

感谢LukasEder(他的评论如下):

String interning仍然可以在运行时完成,即使两个String是用构造函数构造的:

3.何时使用哪个

因为文字“abcd”已经是String类型,所以使用构造函数将创建一个额外的不必要的对象。

因此,如果只需要创建字符串,应该使用双引号。

如果确实需要在堆中创建一个新对象,应该使用构造函数。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表