首先,我使用Drjava交互窗格来测试我在这里发布的所有代码(在我目前的情况下,我无权访问任何其他IDE)。 我注意到我能够使用字符串文字和字符串对象调用属于String类的方法。也就是说,
String s1 = "a";
s1可以访问所有String方法,例如getBytes(),length(),charAt()等。
在整数的情况下,int变量无法访问Integer类中的方法。
为什么会这样?
旁注:
当我尝试比较具有相同值的两个字符串文字时,如
String s1 = "a";
String s2 = "b";
s1 == s2;
我得到的布尔值是假的,根据我读过的关于字符串文字和字符串对象的众多帖子/文章,这不应该是这种情况。
这是否与Drjava的具体功能有关?这是我能够使用字符串文字调用String方法的部分原因吗?
答案 0 :(得分:3)
String
文字是String
类的一个实例,因此能够在其上调用方法是完全正常的。 String
个实例和String
文字之间没有区别,它们是同一个。
另一方面,int
是一种原始类型,不同于Integer
,它是一个可以拥有自己实例的类。
最后,您不应该使用==
比较对象,除非要比较它们的身份,通常您应该使用equals()
来测试相等性。为什么"a" == "b"
返回false
感到惊讶?他们不相等,更不一样,相同。
答案 1 :(得分:0)
字符串是对象。整数是原始的。
为了比较两个字符串,你必须使用string1.equals(string2)。