这可能是有史以来最愚蠢的问题,但我认为这对新手来说完全是一个混乱.
String不可改变的?StringBuilder比首字母和副词更受欢迎?一个很好的例子(在Java中)将非常感激.
众所周知,Java String是不可变的.从一开始,不可变字符串就是java的重要补充.与C风格的字符串相比,不变性允许快速访问和大量优化,显着减少了错误,并有助于实施安全模型.
可以在不使用黑客的情况下创建可变的,即
java.lang.reflectsun.misc.Unsafe但它是否可以只用普通的Java,以便可以随时修改字符串?问题是如何?
好吧,我想我明确指出这个方向的方向很清楚.现在有很多关于不变性(constness)的优点的讨论.Java书中的Concurrent编程也谈到了很多.
然而,这一切正是我所读到的.我个人而言,在功能语言中没有多少编码.对我来说,使用不可变对象可以舒适地工作看起来非常令人惊讶.从理论上讲,这绝对是可能的.但是,从实际的角度来看,是一种非常舒适的体验.或者我必须开发什么样的新推理(对于FP),以便我不需要那么多的可变性.
当你被迫使用不可变对象时,我将不胜感激如何考虑编写程序.