您的位置:首页 > 其它

不管你信不信,反正我信了。是这样实现的……

2011-12-21 17:29 99 查看
生活中的东西,都是可以用程序来模拟实现的。

今天code陈问我这样一个问题:

用程序表示“你回来了,你回来了我很高兴!”这句话。

我是这样写的:
boolean isback =true;
if(isback)
new Me().happly();
=====================================

然后,又问我“不管你信不信,反正我信了”怎么实现?

代码如下:

boolean isbelieve=true;
while(true){
if(isbelieve)

continue;
else

isbelieve=false;
}
======================================

code陈说网上有这样一种写法:

if(you.believe() || !you.believe())

I.believe();
这种方法是存在bug的。我写了一个程序来证实我的观点。
isbelieve=false;

if(isbelieve){
return false;

}else{
isbelieve=true;

return isbelieve;
}

当存在两个线程同时访问这一个方法时,比方说A线程和B线程。假设A线程的优先级是高于B线程的,这样当A线程访问后返回true。isbelieve被赋值为真。此时当线程B再次访问的时候,返回false。再回到上面的程序中:

就变成了这样:
if(真 || 非假)

I.believe();

这样这句话就成了“如果你信了,我也信了”。

===========================================

code陈说还有这样一种写法:

if(you.believe() || true)
I.believe();
在这个基础上我稍作了一下改进。

定义一个借口实现believe()。you和I都继承该接口实现believe()

interface Choose{
public void believe();
}

=====

public class You implements Choose{
public void believe(){
……
}
}
====
public class I implements Choose{
public void believe(){
……
}
}
================

这样或许更好一些。

+++++++++++++++++++++++++++++++++++++++++++++++

很多东西都是可以用程序来模拟的……

/article/2486075.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐