<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

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

    一家公司的幾道筆試題

    public class Jtest{
    int m=1;
    int i=3;
    void Jtest(){
    m
    =2;
    i
    =4;
    }


    public static void main(String[] args){
    Jtest app
    =new Jtest();
    System.out.println(app.m
    +","+app.i);
    }

    }

    寫出輸出.
    結果是1,3;
    因為在這里void Jtest();并沒有并調用,它只是一個
    方法,而非構造方法,這樣的編寫是有警告的,不過
    可以運行.

    public class Jtest{
    int m=1;
    int i=3;
    Jtest()
    {
    m
    =2;
    i
    =4;
    }

    public static void main(String[] args){
    Jtest app
    =new Jtest();
    System.out.println(app.m
    +","+app.i);
    }

    }

    寫出輸出:
    結果是2,4;
    調用了構造方法,不加修飾符,默認訪問權限是
    package access,在Java里沒有關鍵字表示,就是
    包內的能訪問,包外就不行了(即使導入也不行).
    public class Test
    {
        
    static void oper(int b)
        
    {
            b 
    = b + 100;
        }

        
        
    public static void main(String[] args)
        
    {
            
    int a = 99;
            oper(a);
            System.out.println(a);
        }


    }

    輸出為99.
    我們來分析一下內存:
    int a = 99;
    首先在棧里面開辟一塊空間保存a
    比如:a:xxxx
    然后調用oper(a);
    這時把a 的值99賦給int b;
    b在內存里也開辟了自己的空間,此時
    值也是99.
    然后執(zhí)行oper(a);方法體,b = b + 100;
    此時b的值為199,a的值為99.
    public class Test {
      
    public static void main(String[] args) {
            String a
    =new String("A");
            String b
    =new String("B");
            oper(a,b);
            System.out.print(a
    +","+b);
        }

      
    static void oper(String c,String d){
          c.concat(
    "B");
          d
    =c;
      }

    }


    此程序輸出:A和B.
    原因就是String是final類型的.并不會被改變.
    public class Test
    {
        
    public static void main(String[] args)
        
    {
            String a 
    = new String("A");
            String b 
    = new String("B");
            a.concat(
    "aa");
            System.out.println(a 
    + "," + b);
        }


    }


    這個還是會輸出A,B
    原因同上.
    package intervie;

    public class Test
    {
        
    public static void main(String[] args)
        
    {
            String a 
    = new String("A");
            String b 
    = new String("B");
            a 
    = a.concat("aa");
            System.out.println(a 
    + "," + b);
        }


    }


    做了下改動,再來看看.結果就不同了.
    輸出的是Aaa,B
    因為String 是final類型的.所以執(zhí)行到
    a = c.concat("aa");
    會在heap里新創(chuàng)建一個對象,而a指向它.
    這是一新的地址,同String a 這個已經(jīng)不同了.
    所以輸出的是后一個.即改變后的值.
    public class Test
    {
        
    static void oper(StringBuffer c,StringBuffer d)
        
    {
            d 
    = c.append("B");
        }

        
        
    public static void main(String[] args)
        
    {
            StringBuffer a 
    = new StringBuffer("A");
            StringBuffer b 
    = new StringBuffer("B");
            oper(a, b);
            System.out.println(a 
    + "," + b);
        }


    }


    此程序會輸出:AB,B

    StringBuffer是可變的線程安全的.
    原試題下載地址:點此下載



    posted on 2007-12-09 08:15 々上善若水々 閱讀(695) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 国产妇乱子伦视频免费| 国产色爽免费无码视频| 国产乱子精品免费视观看片| 国产V亚洲V天堂A无码| 国产无限免费观看黄网站| 亚洲午夜无码片在线观看影院猛| 免费人人潮人人爽一区二区| 免费欧洲美女牲交视频| 免费一级特黄特色大片| 久久影院亚洲一区| 手机看片国产免费永久| 99久久精品国产亚洲| 91在线手机精品免费观看| 亚洲一卡2卡4卡5卡6卡残暴在线| 在线观看的免费网站| 亚洲乱亚洲乱妇24p| 免费一级毛片不卡在线播放| 未满十八私人高清免费影院| 久久精品国产亚洲精品| 精品无码AV无码免费专区| 亚洲国产成人精品无码区在线网站| 97性无码区免费| 亚洲性色AV日韩在线观看| 伊人久久亚洲综合影院| XXX2高清在线观看免费视频| 亚洲人成网站在线播放影院在线| 国产精品怡红院永久免费| 久久亚洲精品成人无码| 久久精品国产亚洲麻豆| 一本岛高清v不卡免费一三区| 男男gay做爽爽的视频免费| 亚洲综合无码精品一区二区三区| 8x成人永久免费视频| 亚洲jizzjizz少妇| 国产精品亚洲片在线| 国产v精品成人免费视频400条| 立即播放免费毛片一级| 亚洲Aⅴ无码专区在线观看q| 色吊丝最新永久免费观看网站 | 国产无遮挡裸体免费视频 | 四虎成年永久免费网站|