论坛面试题mark

刚在论坛上看到http://www.iteye.com/topic/681784的几道面试,测试了一下,收获不小,特此mark

public class test1 {
    public static boolean get(){
        try{
            //System.out.println("Get false");
            return false;
        }
//        catch(Exception e){
//            e.printStackTrace();
//            System.out.println("Ex true");
//            return true;
//        }
        finally{
            return true;
        }
    }
    public static void main(String... strings){
        System.out.println(get());
    }
}

结果:true

说明在finally中,无论是否return都会执行,当用System.exit()是才会退出。and return只是终止一个模块的运行

2.   public static void main(String[] args) { 
                   String classPath1 = "java.lang.string"; 

                   System.out.println(classPath1.replaceAll(".", "A")); 
                    //System.out.println(classPath1.replaceAll("\\.", "A")); 
            } 

结果:全部替换,以为“.”在JDK中解释为

预定义字符类
. 任何字符(与行结束符 可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

3.public static void main(String ...strings){
        StringBuilder sb=new StringBuilder();
        switch(1){
        case 1:sb.append("Hello a");
        case 2:sb.append("b");
        case 3:sb.append("c");
        default:sb.append("d");
        }
        System.out.println(sb.toString());
    }

这个问题不难,但是为什么要用StringBuilder呢?我平常都用StringBuffer,还是jdk中间分晓。

一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它StringBuffer 要快。

StringBuilder 的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用StringBuffer线程安全的可变字符 序列

4.

 public static void main(String[] args) { 
                  int j = 0; 
                 
                //  System.out.println(j++);
                  for (int i = 0; i < 100; i++)
                            j = j++; 
                  System.out.println(j); 
             
}

结果:0,这个没什么可讲的,就是不要被自己的知识迷惑

6. public static void main(String[] args) { 
                  try { 
                      System.out.println("Hello world"); 
                      System.exit(1); 
                  } finally { 
                      System.out.println("Goodbye world"); 
                  } 
              }  

结果:Hello world,可以与1进行比较

    6 public static void main(String[] args) { 
                  Calendar cal = Calendar.getInstance(); 
                  cal.set(1999, 12, 31); // Year, Month, Day 
                  System.out.print(cal.get(Calendar.YEAR) + " "); 
           
                  Date d = cal.getTime(); 
                  System.out.println(d.getDay()); 
              } 

结果:2000 1 总体感觉没意思

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章