现在的位置: 首页 > 综合 > 正文

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

2013年10月25日 ⁄ 综合 ⁄ 共 1538字 ⁄ 字号 评论关闭
    生活中的东西,都是可以用程序来模拟实现的。
    今天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(){
                ……
        }
}
================
这样或许更好一些。
+++++++++++++++++++++++++++++++++++++++++++++++
很多东西都是可以用程序来模拟的……

抱歉!评论已关闭.