原文:java中String类为什么要设计成final?

将方法或类声明为final主要目的是:确保它们不会在子类中改变语义。String类是final类,这意味着不允许任何人定义String的子类。 String基本约定中最重要的一条是immutable。 但是假如String没有声明为final, 那么你的StringChilld 声明为final就不可被继承 就有可能是被复写为mutable的,这样就打破了成为共识的基本约定。 String源码前 ...

2017-09-11 11:04 0 2817 推荐指数:

查看详情

javastring为什么要设计final

各种不同的理解 1 将方法或声明为final主要目的是:确保它们不会再子类改变语义。Stringfinal,这意味着不允许任何人定义String的子类。换言之,如果有一个String的引用,它引用的一定是一个String对象,而不可能是其他的对象 ...

Thu Jul 21 06:55:00 CST 2016 0 2754
JavaString为什么被设计final

JavaString为什么被设计final   首先,String是引用类型,也就是每个字符串都是一个String实例。通过源码可以看到String底层维护了一个byte数组:private final byte[] value;(JDK9为byte数组,并非网上所说的char数组 ...

Wed Jun 26 04:03:00 CST 2019 0 1267
JavaString为什么要设计finalString真的不可变吗?其他基本类型的包装也是不可变的吗?

最近突然被问到String为什么被设计为不可变,当时有点懵,这个问题一直像bug一样存在,竟然没有发现,没有思考到,在此总结一下。 1.String的不可变Stringfinal修饰,是不可继承和修改的。当一个String变量被第二次赋值时,不是在原有内存地址上修改数据,而是在内存重新 ...

Thu Jul 26 18:24:00 CST 2018 0 935
JavaString为什么设置final

String怎么保证不可变? 虽然final代表了不可变,但仅仅是引用地址不可变,并不代表了数组本身不会变,如: final也可以将数组本身改变的,这个时候,起作用的还有private,正是因为两者保证了String的不可变性。 String为什么保证不可变? 1.为了实现 ...

Wed Apr 17 00:16:00 CST 2019 0 1805
JavaString为什么要设置final

1.不可改变---执行效率高 2.因为String这个对象基本是被所有的对象都会使用的到了,如果可以被复写,就会很乱套,比如map的key ,如果是一个string为key的话,String如果可以改变的话,你想想后果 3.执行效率可以这么解释,面向对象有一个多态的性质,如果可以改变,就可以 ...

Thu May 30 20:03:00 CST 2019 0 620
Java String为什么是final的?

答:1.为了实现字符串池 2.为了线程安全 3.为了实现String可以创建HashCode不可变性 首先你要理解final的用途,在分析String为什么要用final修饰,final可以修饰,方法和变量,并且被修饰的 ...

Wed Feb 19 22:35:00 CST 2020 0 1054
为什么String设计final修饰?

String 是最常用的之一,为了效率,禁止被继承和重写 为了安全。String 中有很多调用底层的本地方法,调用了操作系统的 API,如果方法可以重写,可能被植入恶意代码,破坏程序。Java 的安全性也体现在这里。 来一道刷了进BAT的面试题? ...

Tue Nov 19 17:28:00 CST 2019 0 829
JavaString为什么要设计不可变的?

一、不可变和不可变对象 Normally,you create an object and allow its contents to be changed later.However ,occasionally it is desirable to create an object ...

Fri Oct 18 01:08:00 CST 2019 0 696
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM