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
这次先到这里。坚持记录点点滴滴!
Java基础知识陷阱(八)的更多相关文章
- Java基础知识陷阱系列
		Java基础知识陷阱系列 今天抽空把Java基础知识陷阱有关的文章汇总于此,便于大家查看. Java基础知识陷阱(一) Java基础知识陷阱(二) Java基础知识陷阱(三) Java基础知识陷阱(四 ... 
- Java基础知识陷阱(九)
		本文发表于本人博客. 今天我来说说关于JAVA多线程知识,有错误请指出.大家都知道JAVA在服务端上处理也有很大优势,很多公司也有在服务器跑JAVA进程,这说明JAVA在处理这个多线程以及并发下也有一 ... 
- Java基础知识陷阱(十)
		本文发表于本人博客. 上个星期由于时间比较紧所以未能继续写下去,今天再接再厉,专心 + 坚持这样离目标就越来越近了!废话少说说正题,今天我们还是来说说java中比较基础的知识,大家知道编写java程序 ... 
- Java基础知识陷阱(二)
		本文发表于本人博客. 上次说了一些关于字符串的知识,都是比较基础的,那这次也说下关于对象地址问题,比如传参.先看下面代码: public void changeInt(int a){ a = ; } ... 
- Java基础知识陷阱(七)
		本文发表于本人博客. 上次说了下HashSet和HashMap之间的关系,其中HashMap这个内部有这么一句: static final float DEFAULT_LOAD_FACTOR = 0. ... 
- Java基础知识陷阱(六)
		本文发表于本人博客. 上次说了下equals跟==的问题,今天再来认识一下这个equals()跟hasCode().上次的代码如下: class Person{ public String name; ... 
- Java基础知识陷阱(四)
		本文发表于本人博客. 今天我们来说说关于java继承以及反射有关的问题,大家先看下下面代码,试问可以编译通过不,为什么具体说说原因? public class Test{ public static ... 
- Java基础知识陷阱(三)
		本文发表于本人博客. 之前都讲了有关字符串的陷阱,那今天来说下关于静态这个东西,这分为静态变量.静态方法,先看下面的代码请问结果输出是什么?: class Person01{ private stat ... 
- Java基础知识陷阱(一)
		本文发表于本人博客. 事隔好多年了,重新拿起来Java这门语言,看似熟悉其实还很陌生,想想应该梳理下顺便提高下自己.这次先来看看Java里面的String这个对象. 经典的先看下面一段代码,请问最终创 ... 
随机推荐
- 数据透视表sql:用SQL行列转换实现数据透视的一些思考
			用SQL行列转换实现数据透视的一些思考 摘要:根据对报表开发过程中碰到的需要用SQL行列转换进行解决的一类查询统计问题的分析,逐步探索求解得到一种较通用的解决思路,并用函数进行实现.该解决思路及函数实 ... 
- LoadRunner学习---脚本编写(4)(比较重要)
			今天接着来翻译http://www.wilsonmar.com/中关于LoadRunner脚本编写部分,下面该翻译脚本编写中一些比较重要的部分了. Web用户Action 在VuGen中,脚本产生的默 ... 
- 怎么用ChemDraw加反应条件
			众所周知大部分化学反应都需要在一定的条件下才会发生,比较常见的条件有压力.通电.温度.光照等等.这些特定条件在化学上就叫反应条件.我们在使用ChemDraw这款化学绘图软件的时候,往往需要给我们的化学 ... 
- spring配置文件头部配置解析
			http://blog.csdn.net/f_639584391/article/details/50167321 
- Swig 使用指南 (express模板)
			如何使用 API swig.init({ allowErrors: false, autoescape: true, cache: true, encoding: 'utf8', filters: { ... 
- leetcode -- Maximal Rectangle TODO O(N)
			Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and ... 
- Shell脚本编程与文件系统修复
			导读 Linux基金会发起了LFCS认证(Linux 基金会认证系统管理员)Linux Foundation Certified Sysadmin,这是一个全新的认证体系,旨在让世界各地的人能够参与到 ... 
- Oracle 查询表信息(字段+备注) .
			var t= CardService.GetInstance().test("900000000233"); foreach (DataRow row in ... 
- 【BZOJ2253】[2010 Beijing wc]纸箱堆叠 cdq分治
			[BZOJ2253][2010 Beijing wc]纸箱堆叠 Description P 工厂是一个生产纸箱的工厂.纸箱生产线在人工输入三个参数 n p a , , 之后,即可自动化生产三边边长为 ... 
- MyBatis基础入门
			1.MyBatis概述 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动.创建connection.创 ... 
