Java程序基础面试题(二)

算数运算符

  • "/"和"%"的区别

1 . /运算符
/ 运算符就是求两个数相除后得到的数,如果整型数之间相除得到的为整型数,浮点数之间相除得到的为浮点数(不确定****)

Java程序基础面试题(二)_第1张图片
算数运算符的基本理解

2 . %运算符
%运算符就是求两个数相除的余数,也称为取模运算符
需要注意的是,任何整数都不能对0取模

Java程序基础面试题(二)_第2张图片
整型数据取模的实例

结果为:
x的值为:-1
y的值为:1
z的值为:-1
r的值为:1

Java程序基础面试题(二)_第3张图片
实型数据取模的实例

结果为:
x的值为:-0.1999999999999993
y的值为:0.1999999999999993
z的值为:-0.1999999999999993
r的值为:0.1999999999999993

由此可以得出规律,不管是整型数据的取模运算还是实型数据的取模运算,余数的符号与被除数的符号永远是相同的,与除数的符号无关

短路运算符

&和&&区分

请看下图:

Java程序基础面试题(二)_第4张图片
结果输出为userName不合法

因为&&是短路运算符,当系统运行到userName != null这个语句的时候已经为false,所以系统会直接跳出if语句,进入else语句,输出结果userName不合法.

而把if语句中的&&运算符换成&的时候


Java程序基础面试题(二)_第5张图片
会出现空指针异常

会出现下图异常:


在if语句中报空指针异常

这里会报错的原因是&运算符不是短路运算符,当运算if语句中第一个判断条件时为false,仍然会继续判断第二个条件,在这里我们又知道userName没有赋初值,所以空值.equal("")就会报空指针异常

面试题(一):

一个".java"源文件中是是否可以包括多个类(不是内部类)?有什么限制.

由下图实验可得:

Java程序基础面试题(二)_第6张图片
具体实验结果

然后我们可以知道一个".java"源文件可以包含多个类,但是只允许有一个public类,并且类名必须和文件名一致
每个编译单元只能有一个public 类。这么做的意思是,每个编译单元只能有一个公开的接口,而这个接口就由其public 类来表示。
你可以根据需要,往这个文件里面添加任意多个提供辅助功能的package 权限的类。但是如果这个编译单元里面有两个或两个以上的public 类的话,程序就不知道从哪里导入了,编译器就会报错。  
所以如果想要包含多个类修饰符只能为默认修饰符

面试题(二):在Java中如何跳出当前的多重嵌套循环?有几种方法?

面试题(三):switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

你可能感兴趣的:(Java程序基础面试题(二))