Joshua Bloch使用的“失败原子性”是什么?它对不可变对象有何好处?
发布日期:2021-06-30 12:28:25
浏览次数:3
分类:技术文章
本文共 449 字,大约阅读时间需要 1 分钟。
Bloch的“失败原子性”意味着,如果方法抛出异常,则该对象之后仍应可用。通常,对象应与调用该方法之前处于相同状态。
对于不可变对象,可以简单地从它是不可变的事实中获得收益。没有可以更改对象状态的操作。对象的所有方法都可以创建从原始对象派生的新对象。
例如,String具有substring(int)方法。它不会更改原始字符串中的任何内容-它会创建一个新对象,其内容是所需原始字符串部分的副本。如果抛出异常,那么您将不会获得新对象-但原始String从未更改。 substring()中没有修改原始String的代码,因此它是故障原子的。
可变对象也可以获取失败原子性,但是必须特别注意它,而在不可变对象中,它仅源于您将其设计为不可变的注意。
参考
- https://stackoverflow.com/questions/29842845/what-is-failure-atomicity-used-by-j-bloch-and-how-its-beneficial-in-terms-of-i
转载地址:https://javaedge.blog.csdn.net/article/details/109215155 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月24日 00时15分46秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
yum和apt-get的区别
2019-04-30
vim中文帮助的安装
2019-04-30
linux下获取所有文件夹和文件,支持nfs和xfs
2019-04-30
用分区魔术师把linux所占的分区删除后重写mbr
2019-04-30
软件架构师书籍
2019-04-30
Java程序员到架构师的推荐阅读书籍
2019-04-30
LFS、BLFS、ALFS、HLFS的区别
2019-04-30
国外知名网站评出对程序员最具影响力的图书(附下载)
2019-04-30
敏捷开发与极限编程
2019-04-30
如何获取system()函数的pid
2019-04-30
iconv 文件编码转换
2019-04-30
QLineEdit设置ip输入规则
2019-04-30
Linux串口编程
2019-04-30
交互设计专业书籍推荐(内有部分书籍电子版下载)
2019-04-30
strcasestr函数
2019-04-30
h264 ES流文件通过计算first_mb_in_slice区分帧边界
2019-04-30
设置系统时间
2019-04-30
C++模板学习和C++ 模板套模板
2019-04-30
合 JSONP 和 jQuery 快速构建强大的 mashup
2019-04-30
自制基于地图的 mashup
2019-04-30