面试题:String为什么要用final修饰,有什么好处 |
您所在的位置:网站首页 › 良师益友用什么修饰 › 面试题:String为什么要用final修饰,有什么好处 |
1. 首先回答为什么
为了保证String对象的不可变 2. 那么final是怎么保证String对象的不可变呢?想要回答这个问题,得先知道final的作用: final修饰的类不可被继承final修饰的引用在初始化后不可重新赋值final修饰的方法不可重写接着要明确String的底层是什么,在jdk8中,String的底层是一个char数组,在String类源码中,有一个成员变量value,它是一个char数组引用,指向了存储Sting对象内容的char数组,value引用使用了final修饰: 执行结果如下: 因此,为了保证String对象内容的不可变,String类的设计师们在实现String提供的各种方法时都避免了对value数组元素的改变,举个例子,下面是substring方法的实现源码 public String substring(int beginIndex) { if (beginIndex |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |