我的漫漫程序之旅

          專注于JavaWeb開發(fā)
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數(shù)據(jù)加載中……

          兩道Java面試題解析

          內(nèi)容摘要:本文通過寫出代碼結(jié)果的方式向你解析了java面試中常面倒的幾個知識點:string,equals(),==.


          1.寫出下面代碼的結(jié)果

           

           public class TestString{
              
          public static void link(String a){
                  a 
          += "World";
              }


              
          public static void main(String[] args){
                  String a 
          = "Hello";
                  link(a);
                  System.out.println(a);
              }

           }


          答: 這道題考兩個方面:

          1). String對象的內(nèi)容是不能改變的,a+="World"并不是把a所指對象改變,

            而是先生成一個臨時String對象,其值為a+"World",然后在把這個臨時

            對象賦給a.

          2). Java中函數(shù)參數(shù)傳遞方式為Call by value,link方法中會生產(chǎn)a的一個

            拷貝,同樣指向a所指的對象,綜合以上兩點,得出結(jié)果為 Hello

           

          2.寫出下面代碼的結(jié)果

           

          System.out.println("ja"+"va" == "java");

           

          答:"=="用來比較對象的引用,而equals()用來比較對象的內(nèi)容,但是如果是字符串常量,用"=="也可以比較內(nèi)容

          是否相等,"ja"+"va"和"java"都是字符串常量,因此結(jié)果為true

          同理,下面代碼結(jié)果也是true

           

          final String str = "java";

          System.out.println(str
          =="java")

           



          posted on 2007-12-15 15:21 々上善若水々 閱讀(1542) 評論(3)  編輯  收藏 所屬分類: Java筆試與面試

          評論

          # re: 兩道Java面試題解析  回復(fù)  更多評論   

          比較詳細(xì),謝謝.
          2007-12-16 11:20 | javascript

          # re: 兩道Java面試題解析  回復(fù)  更多評論   

          "ja"+"va"在編譯的時候會優(yōu)化,直接編譯為"java"
          2008-02-23 11:18 | Edward's

          # re: 兩道Java面試題解析  回復(fù)  更多評論   

          學(xué)到了 thanks
          2009-03-17 17:04 | 鳥生魚湯
          主站蜘蛛池模板: 沈丘县| 海伦市| 区。| 万载县| 黎平县| 宜都市| 奉贤区| 株洲县| 卢湾区| 江门市| 宽甸| 社旗县| 綦江县| 福贡县| 长汀县| 嵊泗县| 余江县| 伊川县| 乐山市| 南华县| 达州市| 沅陵县| 正宁县| 台南市| 松潘县| 伊春市| 玉树县| 洪湖市| 土默特右旗| 洛宁县| 图木舒克市| 东乌珠穆沁旗| 抚州市| 攀枝花市| 启东市| 余干县| 镇原县| 建昌县| 龙口市| 崇州市| 油尖旺区|