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比较的是内容是否相等、==比较的是引用的变量地址是否相等。