您的位置:首页 > 职场人生

各种猥琐的Java笔试/面试题目的答案(这是我自己测试得出的答案,如有不对的欢迎批评指正)

2013-03-05 10:49 781 查看
1、运算符优先级问题,下面代码的结果是多少?(笔试)

public class Test {

public static void main(String[] args) {

int k = 0;

int ret = ++k + k++ + ++k + k;

// ret的值为多少

System.err.println(ret);

}

}

我运行之后的结果是如下截图,打印出来的是ret=8,k=3



2、运算符问题,下面代码分别输出什么?(笔试)

package test;

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);

}

}

我的答案是: 编译无法通过!这句话 System.out.println("i1 - i2 = " + i1 - i2);是编译无法通过的,首先双引号中的i1 - i2 = 是一个字符串,这是毋庸置疑的,这个字符串和后面的i1相连接之后,还是一个字符串,再用这个字符串减去i2,这肯定是不行的,i2是一个int类型的整数,字符串减去一个数字那肯定是会报错的。至于其他的3条打印语句,它们会先做运算,然后双引号中的字符串再去和运算完之后的结果相连接起来。如下图所示



3、下面代码的结果是什么?还是抛出异常?(笔试)

public class Test {

public void myMethod(String str) {

System.err.println("调用string");

}

public void myMethod(Object obj) {

System.err.println("调用object");

}

public static void main(String[] args) {

Test t = new Test();

t.myMethod(null);

}

}

我的运行结果是打印出了调用string,那我就再多一句嘴吧,如果把t.myMethod(null);这句话改成t.myMethod(t);那么就会打印出调用object



4、假设今天是9月8日,下面代码输出什么?(笔试)

import java.util.Date;

public class Test {

public static void main(String[] args) {

Date date = new Date();

System.err.println(date.getMonth() + " " + date.getDate());

}

}

我自己试了一下这段程序,getMonth()函数和getDate()函数,java中的Date类的这2个函数都画了一横线,表示这2个函数过时了,如下截图




5、下面代码的输出结果是什么?

public class Test {

public static void main(String[] args) {

double val = 11.5;

System.err.println(Math.round(val));

System.err.println(Math.floor(val));

System.err.println(Math.ceil(val));

}

}

运行结果如下截图,round(val)函数:val的四舍五入值,floor(val)函数:不大于val的最大整数值,ceil(val)函数:不小于val的最小整数值。



6、输出的结果是什么?

public class Test {

public static void main(String[] args) {

System.err.println(new Test().method1());

System.err.println(new Test().method2());

}

public int method1() {

int x = 1;

try {

return x;

} finally {

++x;

}

}

public int method2() {

int x = 1;

try {

return x;

} finally {

return ++x;

}

}

}

我的执行结果如下图



这样呢?输出什么

public class Test {

public static void main(String[] args) {

System.out.println(method());

}

public static boolean method() {

try {

return true;

} finally {

return false;

}

}

}

执行结果如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: