我有一个关于Java中的字符串的简单问题.以下简单代码段仅连接两个字符串,然后将它们与之进行比较==.
String str1="str";
String str2="ing";
String concat=str1+str2;
System.out.println(concat=="string");
Run Code Online (Sandbox Code Playgroud)
比较表达式concat=="string"返回false那么明显(I明白之间的差值equals()和==).
当这两个字符串被声明时final,
final String str1="str";
final String str2="ing";
String concat=str1+str2;
System.out.println(concat=="string");
Run Code Online (Sandbox Code Playgroud)
比较表达式concat=="string",在这种情况下返回true.为什么会final有所作为?它是否必须与实习生池做某事或我只是被误导?
我是Java的新手.现在我正在研究equals和==以及重新定义equals和toString.
我想使用我已经重新定义的toString方法和从Object类继承的默认方法.
我没有使用那个超级修饰符来达到那个方法.
这仅用于教育目的.如果您要查看我的代码中的注释,我希望得到的更清楚.
你能帮帮我吗?
我的代码是:
public class EqualTest{
public static void main(String[] args){
Employee alice1 = new Employee("Alice Adams", 75000, 1987, 12, 15);
//System.out.super.println(alice1);
Employee alice2 = alice1;
//System.out.super.println(alice2);
Employee alice3 = new Employee("Alice Adams", 75000, 1987, 12, 15);
//System.out.super.println(alice3);
System.out.println("alice1==alice2: " + (alice1==alice2));
System.out.println("alice1 == alice3: " + (alice1==alice3));
System.out.println("alice1.equals(alice3): " + alice1.equals(alice3));
}
}
class Employee{
...
public String toString(){
return getClass().getName() + "[name = " + name +
", salary=" + salary + ", hireDay=" + …Run Code Online (Sandbox Code Playgroud) String obj = null;
obj= new String("Samuel");
//vs
String obj = null;
obj="Samuel";
Run Code Online (Sandbox Code Playgroud)
这两种初始化String的方法有什么区别吗?