Java学习笔记(二十):关于String类为什么是final

  • 将String类设计成final,这样String类就不能被继承了,同时String类里面的方法都隐式地变为final方法,网上有一句话是这样说的“final修饰string类,表示所有string类的方法就是final的,所以在调用string方法的时候就会被jvm优化为内联函数,可以提高效率。”其实在最新的java中,已经不需要这样来优化程序了
  • 既然String是final,为什么还可以改变String的值呢?
    • 那是因为String只是定义了一个引用,final修饰了String后,String的指向不能变,但是指向的内容是可以变的。如下:
 String str = "123";
 str = "234";//这样是可行的

但是如果是基本数据类型,那么定义为final,就不能改变其值了 ,如下所示:

final int a = 12;
a = 13;//会提示错误

你可能感兴趣的:(Java学习笔记(二十):关于String类为什么是final)