“public final class String”这是final型的类。
但是我的代码:
String name = "zxx";
System.out.println(name);
name = "lhm";
System.out.println(name);
这段代码是正确的,也就是说我把String对象的值改变了,怎么就可以呢?
感觉你说的很有道理 但是我试了 你说的不对
public class MyTest {
public static void main(String[] args) {
String name = "yuan";
System.out.println(name);
name = new String("lhm");
System.out.println(name);
public final class String”这是final型的类。
但是:
你的变量name不是final的啊,也就是说你查String是不是final的,它是不是这里都跟你的name没关系
你要是写final String name = "zxx";
这个时候你的name才是final的,后面就改不了name的值了
这是你的代码
String name = "zxx";
System.out.println(name);
name = "lhm";
System.out.println(name);
你改成
final String name = "zxx";
System.out.println(name);
name = "lhm";
System.out.println(name);
你再运行看看就明白了
ps: fina定义的变量即为常量,通用的命名习惯是变量名所有字母大写,虽然不影响编译和运行,但是属于一种规范
final String NAME = "zxx"; 这种写法比较标准