java中String为什么设计成不可变对象

Posted 晴空半岛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中String为什么设计成不可变对象相关的知识,希望对你有一定的参考价值。

 

设计成不可变对象为了安全和高效

1.安全方面:举例说明:在文件操作或反射操作的时候需要传递字符串,如果是设计成可变的那么就会造成安全问题

2.高效:举例说明 字符串源码中会将hashcode缓冲下来,那么比如在HashMap中以字符串为key时第一次计算出hash值放缓冲中,以后直接就可以获取到这个值了,不需要重新计算了

 

 

以上是关于java中String为什么设计成不可变对象的主要内容,如果未能解决你的问题,请参考以下文章

Java为什么把String设计成不可变的(immutable)

Java中的String为什么要设计成不可变的?

身为大神的你知道为什么Java要把字符串设计成不可变的嘛!

Java String为什么是不可变类,StringBuffer与StringBuilder区别

重学设计模式(三设计模式-享元模式)

Java String类为什么不可变?