String a = "hello2"; final String b = "hello"; 两者有什么区别呢?

String a = "hello2"; final String b = "hello"; 两者有什么区别呢?
代码1
```String a = "hello2";
final String b = "hello";

String c = b + 2;

System.out.println((a == c));

代码2
`public class Main {

public static void main(String[] args) {

String a = "hello2";

final String b = getHello();

String c = b + 2;

System.out.println((a == c));

}

public static String getHello() {

return "hello";

}
}

老铁,你先要搞清楚final修饰词的具体含义及用途
1.修饰的变量为常量不能被修改,需在定义时就赋值,不赋值的话,就需要在构造方法中赋值(在方法里可以暂时不赋值)
2.修饰变量时经常配合static一起使用
3.如果修饰的是一个new出来的对象的话,那么是这个对象的引用不可变,而不是这个对象的内容不可变
4.修饰的类不能被继承
5.修饰的方法不能被重写

被final修饰的变量不可以被更改,为常量
equals比较的是内容是否相等、==比较的是引用的变量地址是否相等。