2021
08-10
08-10
分析Java中为什么String不可变
目录常量池便利安全引申问题String在Java中的【引用传递】常量池Java中我们创建String对象有两种基本方法。Stringstr1="zxhtom";Stringstr2=newString("zxhtom");上面两种方式我们创建了两个String变量。但是第一种通过双引号创建的zxhtom这个对象我们称之为常量。在JVM中是存储在一块叫【常量池】中的。而第二种str2是我们称之为普通变量。new一次就在JVM中开辟一块内存。【常量池】的作用就是复用,当同样的内容再次...
继续阅读 >
不可变对象想必大部分朋友都不陌生,大家在平时写代码的过程中100%会使用到不可变对象,比如最常见的String对象、包装器对象等,那么到底为何Java语言要这么设计,真正意图和考虑点是什么?可能一些朋友没有细想过这些问题,今天我们就来聊聊跟不可变对象有关的话题。一.什么是不可变对象下面是《EffectiveJava》这本书对于不可变对象的定义:不可变对象(ImmutableObject):对象一旦被创建后,对象所有的状态及属性在其...