频道栏目
首页 > 资讯 > Java > 正文

Java基础知识陷阱(八)

14-12-16        来源:[db:作者]  
收藏   我要投稿
这次我来说说关于&跟&&的区别,大家都知道&是位运算符,而&&是逻辑运算符,看下面代码:
 
 
 
public static void main(String[] args) throws Exception {  
    int a = 1;
    int b = 2;
    int c = a & b;
    if(a >= 1 && b >= 1){
        System.out.println("&&条件1");
    }
    if(a >= 2 && (b = 3) >= 3){
        System.out.println("&&条件2");
    }
    System.out.println(b);
    System.out.println(c);        
}
那么输出:
 
&&条件1
 
可以看出,第二个条件判断时&&进行了短路不会执行b = 3;操作。那如果把&&换成&的呢,如何,看代码:
 
public static void main(String[] args) throws Exception {
    int a = 1;
    int b = 2;
    int c = a & b;
    if(a >= 1 && b >= 1){
        System.out.println("&&条件1");
    }
    if(a >= 2 && (b = 3) >= 3){
        System.out.println("&&条件2");
    }
    System.out.println(b);
    if(a >= 2 & (b = 3) >= 3){
        System.out.println("&&条件3");
    }
    System.out.println(b);
    System.out.println(c);
     
}
看输出:
 
 
&&条件1
 
这个&符号不会产生短路功能还会进行下面的判断。
 
多态这个对于程序员来说是非常熟悉的了,熟悉归熟悉我还是来说说,网上也好多了,首先多态应该是一个运行时的行为,这个特别重要!网上好多地方说了重写与重载都是多态行为。但是也有些地方以及博客都会说明不要把重载理解为是多态!!
 
class Parent{
    public void doing(){
        System.out.println("Parent --> do");
    }
}
class Child extends Parent {
    @Override
    public void doing(){
        System.out.println("Child --> do");
    }
    public void run(){
        System.out.println("Child --> run");
    }
}
看调用代码:
 
public static void main(String[] args) throws Exception {
    Parent p = new Child();
    p.doing();
    p.run();
}
p.doing();这个是可以准确调用的,然而p.run()是编译错误,因为在父类Parent中未定义其方法,如果需要调用则需要定义为Child。
1
Child p = new Child();
相关TAG标签
上一篇:"洋葱"网络不安全也有被监听、控制的可能恶搞 新恶意软件可APT攻击
下一篇:Chromium开发团队准备将HTTP标记为不安全
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站