int mark = value1;
int position = value2;
public classType reset() {
int m = mark;
if (m < 0)
throw new Exception();
position = m;
return this;
}
疑问:为什么将mark赋值给新的临时变量,而不是像下面这样:
int mark = value1;
int position = value2;
public classType reset() {
if (mark < 0)
throw new Exception();
position = mark;
return this;
}
我的想法:
- 单纯就是用m比用mark来得更简洁
- 防止mark的值在返回之前被修改了(注:该类不是thread safe的
- 这不是个问题
清楚的朋友麻烦给下意见,谢谢啦
个人倾向于第2点。
不是thread safe只是说不保证线程安全,但是为安全性做一点点额外的努力还是有好处的。
比如能够改善内部状态的一致性:虽然无法保证mark和position的完全一致,但至少可以做到在调用reset时的mark和最终的position是一致的,不至于出现
调用时的mark大于等于0,但最终position却变成小于0
这种严重不一致的情况。这种一致性的改善虽然不能够让程序能够在多线程下面跑,但却有以下好处: