• Java基础知识陷阱(八)


    本文发表于本人博客

        这次我来说说关于&跟&&的区别,大家都知道&是位运算符,而&&是逻辑运算符,看下面代码:

        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
    2
    0

    可以看出,第二个条件判断时&&进行了短路不会执行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
    2
    3
    0

    这个&符号不会产生短路功能还会进行下面的判断。

    多态这个对于程序员来说是非常熟悉的了,熟悉归熟悉我还是来说说,网上也好多了,首先多态应该是一个运行时的行为,这个特别重要!网上好多地方说了重写与重载都是多态行为。但是也有些地方以及博客都会说明不要把重载理解为是多态!!

    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。

    Child p = new Child();

    想多理解可以看这里:

    http://blog.csdn.net/cyq1028/article/details/6879088

    http://www.cnblogs.com/mengdd/archive/2012/12/25/2832288.html


    这次先到这里。坚持记录点点滴滴!


  • 相关阅读:
    算法分析之最大子段求和(一)
    算法分析之动态规划
    算法分析之数字三角形逆推
    算法分析之递归与分治策略
    算法分析之汉诺塔问题
    算法分析之猴子吃桃
    基于python玩转人工智能最火框架之TensorFlow人工智能&深度学习介绍
    win10 64下anaconda4.2.0(python3.5)
    PYTHON 爬虫 baidu美女图片
    falkonry
  • 原文地址:https://www.cnblogs.com/luoliang/p/4165166.html
Copyright © 2020-2023  润新知