核心Java(与字符串类相关)
在该程序中,所有System.out.println;提供真正的价值。有人能简要解释一下吗核心Java(与字符串类相关),java,Java,在该程序中,所有System.out.println;提供真正的价值。有人能简要解释一下吗 public class Lab { public static void main(String args[]) { Stud st = new Stud("Vj"); Emp em = new Emp("Vj"); System.out.println(st.snm == em.enm);//How this Statement gives t
public class Lab {
public static void main(String args[]) {
Stud st = new Stud("Vj");
Emp em = new Emp("Vj");
System.out.println(st.snm == em.enm);//How this Statement gives true
st.show(em);
}
}
class Stud {
String snm;
Stud(String snm) {
this.snm = snm;
}
void show(Emp em) {
String msg = "Vj";
System.out.println(em.enm == msg);
System.out.println(em.enm == snm);
em.display(this);
}
}
class Emp {
String enm;
Emp(String enm) {
this.enm = enm;
}
void display(Stud st) {
String
var = "Vj";
System.out.println(st.snm == var);
System.out.println(st.snm == enm);
}
}
通过定义和分配字符串文字,您可以从字符串池中存储/检索字符串 所以当你这样做的时候:
String str1 = "abc";
String str2 = "abc";
System.out.println(str1 == str2);//will return true
它将返回true,因为两个文本相等
==在两个引用类型上是引用标识比较。两个相等的对象不一定等于。在引用类型上使用==通常是错误的;大多数情况下,需要使用equals:
str1.equals(str2)
请编辑您的文章格式的源代码是可读的我刚刚做了@Ujjawal Singh,请注意您的问题的正确格式。这对于良好的可读性很重要。可能重复,你读过这个答案吗@Shrikant Havale我检查了那个链接..它不是重复的…我有什么疑问…再次解释了。@SMA..谢谢…我再次解释了我的问题..我有什么疑问..请澄清..Stud类有一个引用变量字符串snm和Emp类有一个引用变量字符串enm,在main方法中,我创建了Stud类对象st,并在costructor中传递vj,这与我在Emp类中创建的对象为em时所做的相同。现在我想比较st.snm==em.enm,它给出了真实的值……请用brif解释@UjjawalSingh他做了简短的解释。请试着理解它。另请查看注释中的链接。@Ujjawal Singh:true值表示两个值相同,这就是==运算符的用途。