Java “s.equals”和“s.equals”之间有什么区别&引用;。等于
首先:Java “s.equals”和“s.equals”之间有什么区别&引用;。等于,java,string,equals,Java,String,Equals,首先:s.equals(“”和”.equals()之间有什么区别 第二:如果我执行其中一项功能,会发生什么“”。子字符串(1)或“”。字符(0)关于相等,当涉及到结果时,两个相等变量之间没有差异。然而,第二个是空安全的。如果s为null,第一个变量将抛出NullPointerException,第二个变量的计算结果将为false 第一个问题:如果s不是null,则没有区别。如果s为null,则s.equals(“”将抛出NullPointerException,而“.equals(s)将仅返回f
s.equals(“”
和”.equals(
)之间有什么区别
第二:如果我执行其中一项功能,会发生什么<代码>“”。子字符串(1)或
“”。字符(0)
关于相等,当涉及到结果时,两个相等变量之间没有差异。然而,第二个是空安全的。如果s
为null,第一个变量将抛出NullPointerException,第二个变量的计算结果将为false
第一个问题:如果s
不是null
,则没有区别。如果s
为null
,则s.equals(“”
将抛出NullPointerException
,而“.equals(s)
将仅返回false
第二:这两个都会抛出一个
索引outofboundsexception
第一个:
"".substring(1);
为这两个类调用类实例的方法。因此,它的内部结构没有区别
但是,值得注意的是,”.equals
不太可能抛出NullPointerException
。对于字符串
类,其实现如下:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
秒:
"".substring(1);
此调用将抛出一个索引outofboundsException
。从Java文档中可以看到一个异常:如果beginIndex为负值或大于该字符串对象的长度
此外,它还会引发异常,如前一个示例所述:
IndexOutOfBoundsException
-如果index参数为负数或不小于此字符串的长度。对于第二个问题,是什么阻止您运行某些代码并查看它们?您甚至可以在浏览器中的几个网站上运行Java online。请询问。高度相关:如果您无法运行第二个示例,您可以阅读文档,其中将告诉您发生了什么。