脑筋急转弯


  今天这书的两位作者到公司来讲课。正好有空,就跑过去听。介绍他们的电子邮件里说他们要用几个小例子来讲一些大家会忽视的关于java的东西。。。
  
  很有趣。一个小时的时间他们讲了8个小例子,都很有趣。。。
  
  记下几个自己记得的给大家做来玩。。。
  
  1。
  static String a = “Length: 10”;
  static String b = “Length: “+a.length();
  System.out.println(“String A and B are the same: ”
   + a == b);
  
  最后输出是什么?
  a) “String A and B are the same: true”
  b) “String A and B are the same: false”
  c) throw exception
  d) none of the above
  
  2。
  int tricky = 0;
  for (int i=0; i<3; i++){
   tricky += tricky++;
  }
  System.out.println(tricky);
  最后输出是什么?
  a) 0
  b) 3
  c) 14
  d) none of the above
  
  
  3。
  public class InitializeIt{
  
  static { initialize()};
  private static int sum;
  private static boolean initialized_ = false;
  private static void initialize{
   if (!initialized_){
   for (int i=0; i<100; i++){
   sum += sum;
   }
   initialized_ = true;
   }
  }
  public static void main(String[] args){
   if (!initialized_)
   initialize();
   System.out.println(sum);
  }
  }
  
  最后输出是什么?
  a) 4905
  b) 5050
  c) 9955
  d) none of the above