相关疑难解决方法(0)

将字符串与==进行比较,这些字符串在Java中声明为final

我有一个关于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 string final

217
推荐指数
4
解决办法
1万
查看次数

如果已重新定义toString方法,如何打印对象的地址

我是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)

java

40
推荐指数
2
解决办法
6万
查看次数

这两种初始化String的方法有什么区别?

String obj = null;
obj= new String("Samuel");

//vs

String obj = null;
obj="Samuel";
Run Code Online (Sandbox Code Playgroud)

这两种初始化String的方法有什么区别吗?

java

2
推荐指数
1
解决办法
4063
查看次数

标签 统计

java ×3

final ×1

string ×1