2005年漂泊的一年,先后求职于南京,上海和北京三地,因此惨遭京沪宁三地java高手蹂躏。 这些都是面试java架构师的比较变态的题目: 1。变态指数 4 int x=4; System.out.println("value is " +((x>4)?99.9:9)); 答案 9.0 问号表达式的后面两个条件有要求,因为前面的是float,所以后面转为float. 估计出题者才通过SCJP的考试。 2.变态指数 5 public class Test {
public static void main(String[] args) { int x = 4; java.util.Date date = (x > 4) ? new A() : new B(); } }
class A extends java.util.Date {} class B extends java.util.Date {} 答案 jdk1.4编译不通过,1.5可以 不知道出题人的意图 3.变态指数 6 String s=new String("abc"); 创建了几个String对象? 答案 2个 这样的公司最好不要去
4.变态指数 7 const是不是java的关键字? 答案 const是java的关键字,但是java没有实现它 一般人绝对用不到它
5.变态指数 8 ,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 答案 1错2对,1因为向上转型了,最后导致类型不匹配错误 , 因为s1的+=是一个操作符,能够自动转型, short s1 = 1; s1 = s1+1;这句话在c++里面可以的 不知道出题人的意图 6.变态指数 9 上海贝尔的面试题:你认为效率最高的方法,实现从1加到100. 答案 1-100的累加相当于加50次101,这样循环次数从100次降为50次: int sun = 0 for(int i = 1,j = 100 ; i <= 50 ; i++,j--){ sun = sun + i + j; } 出题人脑子有问题,直接(1+100)*50不是最快...其实类似这样的优化应该不是程序员考虑的范畴吧 7.变态指数 10 System.out.println(5.0942*1000); System.out.println(5.0943*1000); System.out.println(5.0944*1000);的结果 答案 :5094.2 5094.299999999999 5094.400000000001 原理和浮点数的计算机表示方式有关 ,你不用上机,就答对了,你最好去微软,接替安德尔森.
|