gpt4 book ai didi

java - 为什么我可以使用 String 文字调用 String 类方法?

转载 作者:行者123 更新时间:2023-11-30 07:51:32 24 4
gpt4 key购买 nike

首先,我正在使用 Drjava 交互面板来测试我在这里发布的所有代码(在我当前的情况下我无法访问任何其他 IDE)。我注意到我能够使用字符串文字和字符串对象调用属于 String 类的方法。也就是说,

String s1 = "a";  

s1 可以访问所有 String 方法,例如 getBytes()、length()、charAt() 等。

虽然在整数的情况下,int 变量无法访问 Integer 类中的方法。

为什么会这样?

旁注:

当我尝试比较具有相同值的两个字符串文字时,如

String s1 = "a";
String s2 = "b";

s1 == s2;

我得到的 boolean 值是假的,根据我读过的关于字符串文字与字符串对象的大量帖子/文章,这不应该是这种情况。

这是否与 Drjava 的具体功能有关?这就是为什么我能够使用字符串文字调用 String 方法的部分原因吗?

最佳答案

String 文字是对 String 类实例的引用(Java 8 语言规范 - 3.10.5 字符串文字),因此能够正常使用在其上调用方法。对 String 实例(如变量)和 String 文字的引用之间没有区别,它们是一回事。

另一方面,int 是原始类型,不同于 Integer,后者是一个可以拥有自己实例的类。

最后,你永远不应该使用 == 来比较对象,除非你想比较它们的身份,通常你应该使用 equals() 用于测试平等性。为什么您对 "a"== "b" 返回 false 感到惊讶?它们不相等,更不相同。

关于java - 为什么我可以使用 String 文字调用 String 类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46901696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com