immutability
-
如何确定 Java 方法是否修改作为参数传递的对象 我来自C++背景,目前正在学习Java。当我尝试使用一些第三方库时,出现了一个问题。如何确定对以对象引用为参数的方法的调用是否修改了对象?在C++由于使用了const关键字,这一点很清楚。如
-
J bloch使用的“失败原子性”是什么,它在不可变对象方面有何益处? 只是遇到下面的声明作为好处 不可变对象总是具有“失败原子性”(Joshua Bloch使用的一个术语):如果一个不可变对象抛出异常,它永远不会处于不希望或不确定的状态。 任何人都可以更
-
番石榴中是否有相应的不可变枚举映射? 我最近了解到EnumMap在Java中的好处,并希望将现有的EnumMap替换为EnumMap。但是,我也喜欢ImmutableMap提供的不可变属性。 有没有一个变体,不可变的EnumMap在番石榴中可用? 在存储方面,哪一个(E
-
-
-
安全发布和不可变与有效不可变的优势 我正在重读Java并发实践,我不确定我是否完全理解了关于不可变性和安全发布的章节。 书中说的是: 任何线程都可以安全地使用不可变对象,而无需额外的同步,即使不使用同步来发布它
-
为什么 Java 包装类是不可变的? 我知道适用于一般不可变类的常见原因,即 不能改变作为副作用 易于推理他们的状态 固有的线程安全 无需提供克隆/复制构造函数/工厂复制方法 实例缓存 无需防御性副本。 但是,包装类表
-
-
-
如何创建一个完全不可变的树层次结构?建筑鸡和蛋 我喜欢使数据类不可变,以使并发编程更容易。但是,建立一个完全不可变的层次结构似乎有问题。 考虑这个简单的树类: 在不强制它是一个单链接树的情况下,是否有任何聪明的方法来构
标签