相关疑难解决方法(0)

不可变的意思是什么?

这可能是有史以来最愚蠢的问题,但我认为这对新手来说完全是一个混乱.

  1. 有人可以澄清不可变的含义吗?
  2. 为什么是String不可改变的?
  3. 不可变对象有哪些优点/缺点?
  4. 为什么一个可变对象StringBuilder比首字母和副词更受欢迎?

一个很好的例子(在Java中)将非常感激.

java string immutability

383
推荐指数
11
解决办法
17万
查看次数

创建一个可变的java.lang.String

众所周知,Java String是不可变的.从一开始,不可变字符串就是java的重要补充.与C风格的字符串相比,不变性允许快速访问和大量优化,显着减少了错误,并有助于实施安全模型.

可以在不使用黑客的情况下创建可变的,即

  • java.lang.reflect
  • sun.misc.Unsafe
  • bootstrap类加载器中的类
  • JNI(或JNA,因为它需要JNI)

但它是否可以只用普通的Java,以便可以随时修改字符串?问题是如何

java security string

50
推荐指数
3
解决办法
3万
查看次数

优点./缺点.不变性与可变性

好吧,我想我明确指出这个方向的方向很清楚.现在有很多关于不变性(constness)的优点的讨论.Java书中的Concurrent编程也谈到了很多.

然而,这一切正是我所读到的.我个人而言,在功能语言中没有多少编码.对我来说,使用不可变对象可以舒适地工作看起来非常令人惊讶.从理论上讲,这绝对是可能的.但是,从实际的角度来看,是一种非常舒适的体验.或者我必须开发什么样的新推理(对于FP),以便我不需要那么多的可变性.

当你被迫使用不可变对象时,我将不胜感激如何考虑编写程序.

  • 已经把它作为社区维基...为所有有兴趣关闭这个问题或者将其标记为主观......等等...*

functional-programming

22
推荐指数
4
解决办法
9312
查看次数