下面给大家分享两道经典的java面试代码题,主要是和运算符问题相关的内容,一起来看看具体的题目和答案吧。
题目一
1、题目
运算符优先级问题
下面代码的结果是多少?
public class Test { public static void main(String[] args) { int k = 0; int ret = ++k + k++ + ++k + k; // ret的值为多少 System.err.println(ret); } }
2、答案
这道题目主要考察的是++i和i++的区别。
++在前则先自增再赋值运算,++在后则先赋值再自增运算。
所以,结果为8。
题目二
1、题目
运算符问题
下面的代码分别输出什么?
public class Test { public static void main(String[] args) { int i1 = 10, i2 = 10; System.err.println("i1 + i2 = " + i1 + i2); System.err.println("i1 - i2 = " + i1 - i2); System.err.println("i1 * i2 = " + i1 * i2); System.err.println("i1 / i2 = " + i1 / i2); } }
2、答案
这道题目主要考察的就是运算符的优先级、字符串与数字中的+为连接符号。
在第1条当中,都是都是相加,那么,从前到后的顺序运算,字符串与数字相加,连接为一个字符串,再与后面的数字相加,再次连接为字符串,所以,结果为“i1 + i2 = 1010”。
第2条编译是错误的,字符串不能和数字用减号连接。
第3条、第4条当中,乘除的优先级高,会先运算,而后再和字符串连接,所以,结果分别为:“i1 * i2 = 100”、“i1 * i2 = 1”。
以上两道经典的java面试代码题你都了解了吗?
更多java经典面试代码题,请继续关注奇Q工具网的面试题栏目了解吧。
推荐阅读: