各种猥琐的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个函数过时了,如下截图
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;
}
}
}
执行结果如下
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;
}
}
}
执行结果如下
相关文章推荐
- 收录各种猥琐的Java笔试/面试题目
- 收录各种猥琐的Java笔试/面试题目
- 收录各种猥琐的Java笔试/面试题目
- 收录各种猥琐的Java笔试/面试题目
- 作各种猥琐的Java笔试/面试题目
- 收录各种猥琐的Java笔试/面试题目
- 收录各种猥琐的Java笔试/面试题目
- 收录各种猥琐的Java笔试/面试题目(之前在某个人的博客里看到的,与大家分享一下吧!)
- 收录各种猥琐的Java笔试/面试题目
- java初中级工程师面试笔试题目及心得(全部实战经验)(答案)
- java初中级工程师面试笔试题目及心得(全部实战经验)(答案)
- 剑指Offer22题栈的压入、弹出序列 java解答(如有错误欢迎批评指正)
- Java面试笔试题大汇总(最全+详细答案)
- 华为面试/笔试题目(附答案)
- Java笔试常见题题目及答案
- 程序员面试笔试中常见50道题目及答案
- Java常见笔试、面试题目深度剖析
- 2012年第三届蓝桥杯(C/C++)预赛题目及个人答案(欢迎指正)
- 【转载】强大的计算机工作面试笔试题目...【与中国文学紧密结合】(带非标准答案)
- Java程序基础测试 基础笔试、面试常见问题集合