面试题积累

*1、&&与&的区别
*2、switch()内能使用的类型

1、&&与&的区别

区别

&与&&均可作为逻辑与运算符,但是&&为短路与,即前以表达式为false将不会在执行&&后面的表达式;&为非短路与,即无论&前面的表达式是否为false,其后面的表达式均执行。

除此之外,&还可以作为整数的与运算符;

实例

例1:

String str=null;
if(str!=null && str.equals("")); //不抛出NullPointerException

if(str!=null & str.equals("")); // 抛出NullPointerException

例2:

image

image

2、switch()内能使用的类型

switch中只能放置byte,int,short,char,enum类型,
其他的封装类型,引用类型,基本类型均不可使用。

3、静态变量和实例变量的区别

语法定义上: 静态变量前面需加static关键字,实例变量不需要;
程序运行上: 实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。