<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();并沒有并調(diào)用,它只是一個
    方法,而非構造方法,這樣的編寫是有警告的,不過
    可以運行.

    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;
    調(diào)用了構造方法,不加修飾符,默認訪問權限是
    package access,在Java里沒有關鍵字表示,就是
    包內(nèi)的能訪問,包外就不行了(即使導入也不行).
    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.
    我們來分析一下內(nèi)存:
    int a = 99;
    首先在棧里面開辟一塊空間保存a
    比如:a:xxxx
    然后調(diào)用oper(a);
    這時把a 的值99賦給int b;
    b在內(nèi)存里也開辟了自己的空間,此時
    值也是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)站導航:
     
    主站蜘蛛池模板: 中文成人久久久久影院免费观看 | 99精品免费视品| 免费无码一区二区三区蜜桃大 | 四虎亚洲精品高清在线观看| 99精品国产成人a∨免费看| 亚洲AV午夜成人片| 一区二区免费视频| 亚洲码一区二区三区| 国产成人免费在线| 亚洲综合色区中文字幕| 国产精品久久久久久久久久免费| 精品亚洲国产成人| 日韩精品免费一区二区三区| 黄网站色视频免费看无下截| 亚洲av中文无码| 永久免费A∨片在线观看| 亚洲国产AV无码专区亚洲AV| 午夜精品免费在线观看| 久久亚洲精品成人无码网站| 国产精品成人免费福利| 亚洲国产精品精华液| 亚洲视频在线一区二区| 国产精品免费看久久久| 亚洲AV无码一区二区三区人| 精品国产免费一区二区| caoporn国产精品免费| 亚洲av无码一区二区三区不卡| 亚洲黄色免费在线观看| 亚洲AV无码一区二区一二区| 亚洲国产精品成人久久蜜臀 | 亚洲av日韩综合一区久热| 亚洲精品无码永久在线观看| 三年片在线观看免费| 亚洲国产精品综合福利专区| 暖暖免费高清日本中文| 久久er国产精品免费观看8| 亚洲网站在线播放| 成人永久福利免费观看| 久久国产精品免费看| 亚洲人AV在线无码影院观看| 亚洲人成无码网站|