原文:为什么String类是不可变的?

为什么String类是不可变的 String类 什么是不可变对象 当满足以下条件时,对象才是不可变的: 对象创建以后其状态就不能修改。 对象的所有域都是final类型的。 对象是正确创建的 在对象的创建期间,this引用没有逸出 。 这是 Java并发编程实战 一书中的定义。在书中,说明并不是一定要将所有的域都设为final类型,比如String类就是这种情况,String会将散列值的计算推迟到 ...

2017-07-24 18:32 0 3285 推荐指数:

查看详情

String为什么是不可变

String为啥是final的? 我们找到string的jdk源码 1.看到String被final修饰。这里你就要说出被final修饰的不能被继承,方法不能被重写,变量不能被修改。 2.看到final修饰的char[]代表了被存储的数据不可 ...

Wed Feb 05 21:18:00 CST 2020 1 1335
java中String为什么不可变

在面试中经常遇到这样的问题:1、什么是不可变对象。不可变对象有什么好处。在什么情景下使用它,或者更具体一点,java的String为什么要设置成不可变类型? 1、不可变对象,顾名思义就是创建后的对象不可以改变,典型的例子有java中的String类型。 2、相比于可变对象,不可变对象 ...

Tue Nov 04 22:59:00 CST 2014 1 16871
为什么Java中的String不可变的?

String是Java中的一个不可变(immutable class)。 简单来说,不可变就是实例在被创建之后不可修改。 在《Effective Java》 Item 15 中提到了为了使成为不可变,需要遵循的五条规则: 不要提供任何会修改对象状态的方法。 保证 ...

Wed Sep 13 22:41:00 CST 2017 0 1516
聊聊JAVA中 String为什么不可变

事情还是让自己倍感压力的,生活可以知足常乐,但人生不可以,如果你不把生命体验到极致,也许会被未来的自己所 ...

Tue Sep 19 17:09:00 CST 2017 17 1596
String不可变StringBuffer可变

String是一个,也可以表示字符串数据类型 String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去. String 是final,即不能被继承.作为参数传递时,只是复制了一份引用 ...

Thu Mar 05 19:09:00 CST 2015 0 2341
String为什么是不可变的?

前几天一个面试被问到String为什么是不可变的?, 自我感觉当时回答的不太理想, 事后总结一下 不可变的是什么 我们谈论的String不可变, 指的是字符串的值不可变 例: String s = "hello" s的值就是hello, 不可变也指的是这个值不可变 类比到int基本类 ...

Sat Apr 20 00:10:00 CST 2019 0 699
String为什么不可变

什么是不可变对象? 众所周知, 在Java中, String不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指 ...

Tue Nov 29 01:57:00 CST 2016 4 25707
为什么 String不可变的?

作者:Yujiaao https://segmentfault.com/a/1190000019962661 我最喜欢的 Java 面试问题,不好回答,但同时也非常有用。一些面试者也常问这个问题,为什么 String 在 Java 中是 final 的。 字符串在 Java 中是不可变 ...

Tue Apr 21 21:56:00 CST 2020 0 1976
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM