![]() |
1
7
首先
其次,字符串常量是内部的,因此s1和s2在幕后被更改为同一个字符串实例。 |
![]() |
2
7
String.intern()
可用于确保相等的字符串具有相等的引用。字符串常量是
一般来说,字符串不应通过引用相等进行比较,而应通过值相等进行比较,使用
|
![]() |
3
7
|
![]() |
4
3
在比较java字符串时,应该使用.equals和not==。 ==比较引用,因此s2.ToString()返回s2。
|
![]() |
5
3
根据java虚拟机规范:
因此
|
![]() |
6
2
==比较引用并创建两个不同的对象。
字符串不是基元。参考资料将
|
![]() |
7
1
|
![]() |
8
1
由于String是不可变的,toString方法的一个有用实现是在String类中返回这个值。 例如,my rt.jar包含以下实现:
因此,与
考虑到
|
![]() |
9
1
在你的情况下,你定义你自己的类型
|
![]() |
10
1
每一个例子
以防
这种行为称为 String pooling . |
![]() |
11
1
比较时
它们是不同的对象,因为您创建它们的方式不同:
这就是结果
|
![]() |
12
1
你要走的路是。等于(其他)。 为此,必须在Mystring类中实现equals方法:
|
![]() |
13
0
|
![]() |
14
0
当你使用
在这里,
要比较两个字符串的内容,请使用
|
![]() |
15
-1
s2.toString()正在返回字符串表示形式。因为它已经是一个字符串了,所以它返回它自己(这就是为什么比较是正确的)。 所有字符串都分配在堆上,coparison操作符只是比较它们是否是同一个对象(这就是为什么s1!=s2)。 |
![]() |
Ben · 统计向量中的单词在字符串中出现的频率 4 月前 |
![]() |
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 6 月前 |
![]() |
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 6 月前 |
![]() |
user764754 · 防止多行原始字符串文字中出现新行字符 6 月前 |
![]() |
Bogaso · 从列表中返回与模式匹配的元素 6 月前 |
![]() |
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 6 月前 |