原文:在Java中String类为什么要设计成final?String真的不可变吗?其他基本类型的包装类也是不可变的吗?

最近突然被问到String为什么被设计为不可变,当时有点懵,这个问题一直像bug一样存在,竟然没有发现,没有思考到,在此总结一下。 .String的不可变String类被final修饰,是不可继承和修改的。当一个String变量被第二次赋值时,不是在原有内存地址上修改数据,而是在内存中重新开辟一块内存地址,并指向新地址。 String类为什么要被设计为是final的 .不可变性支持线程安全。 .不 ...

2018-07-26 10:24 0 935 推荐指数:

查看详情

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
javaString为什么不可变

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

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

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

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

前言 "我的风格比较偏传统和经典" 小明说,"我们在打扮自己的问题上还是蛮冒险的...我觉得当你是只狗的时候,穿什么都hold的住!" 哈哈哈,脱离单身狗快两年了,生活除了爱情,不变的还有对代码的挚爱,总之始于热爱,忠于爱情,陷于代码。 前半年规划人生,后半年开始规划,最近发生的一些 ...

Tue Sep 19 17:09:00 CST 2017 17 1596
String为什么是不可变

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

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

为什么String不可变的? # String 什么是不可变对象   当满足以下条件时,对象才是不可变的: 对象创建以后其状态就不能修改。 对象的所有域都是final类型的。 对象是正确创建的(在对象的创建期间,this引用没有逸出)。   这是 ...

Tue Jul 25 02:32:00 CST 2017 0 3285
为什么String设计不可变的?

1. 字符串常量池的需要 字符串常量池(String pool, String intern pool, String保留池) 是Java堆内存中一个特殊的存储区域, 当创建一个String对象时,假如此字符串值已经存在于常量池中,则不会创建一个新的对象,而是引用已经存在的对象。假若字符串对象 ...

Tue Mar 26 00:09:00 CST 2019 0 732
String不可变真的是因为 final 吗?

🎓 尽人事,听天命。博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 🎁 本文已收录于 「CS- ...

Thu Apr 08 00:18:00 CST 2021 2 1639
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM