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这个对象. 经典的先看下面一段代码,请问最终创 ...
随机推荐
- php -- 反射ReflectionClass
反射类:ReflectionClass 反射就是将其他类的结构给反应出来,从而可以对类的结构进行了解便于对类的使用. ReflectionClass::export(类名); 返回结果为三个数组:常量 ...
- 【BZOJ】1673: [Usaco2005 Dec]Scales 天平(dfs背包)
http://www.lydsy.com/JudgeOnline/problem.php?id=1673 bzoj翻译过来的c<=230不忍吐槽......................... ...
- macosx下apache的默认用户为daemon
环境macosx, xampp. 其中apache的默认账户为daemon,若想对htdocs下的文件做写操作,必须改动该文件夹的用户权限: chown daemon:daemon MYDIR chm ...
- Android 数据存储(XML解析)
在androd手机中处理xml数据时很常见的事情,通常在不同平台传输数据的时候,我们就可能使用xml,xml是与平台无关的特性,被广泛运用于数据通信中,那么在android中如何解析xml文件数据 ...
- 《C#高级编程》学习笔记----c#内存管理--栈VS堆
本文转载自Netprawn,原文英文版地址 尽管在.net framework中我们不太需要关注内存管理和垃圾回收这方面的问题,但是出于提高我们应用程序性能的目的,在我们的脑子里还是需要有这方面的意识 ...
- LAMP集群项目
vi /etc/sysconfig/network 一.安装硬件环境(安装虚拟机) 1.安装VMware步骤 1.修改网卡配置 vi /etc/sysconfig/network-scripts/if ...
- [Gradle] 如何强制 Gradle 重新下载项目的依赖库
强制刷新 Gradle 依赖库缓存 $ gradle build --refresh-dependencies The --refresh-dependencies option tells Grad ...
- JAVA需要掌握的一些技术
1.你需要精通面向对象分析与设计(OOA/OOD).涉及模式(GOF,J2EEDP)以及综合模式.你应该了解UML,尤其是class,object,interaction以及statediagrams ...
- style、currentStyle、getComputedStyle(不同浏览器获取css样式)区别介绍
style.currentStyle.getComputedStyle区别介绍 样式表有三种方式 内嵌样式(inline Style) :是写在Tag里面的,内嵌样式只对所有的Tag有效. 内部样 ...
- windows下安装google protocbuf
首先安装setuptools: windows:======== 1.下载 ez_setup.py,安装setuptoolshttps://bitbucket.org/pypa/setuptools/ ...