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

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

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

    Jason ---分享,共同進步

    激情成就夢想,努力創(chuàng)造未來
    隨筆 - 53, 文章 - 1, 評論 - 45, 引用 - 0
    數(shù)據(jù)加載中……

    一個java的基礎(chǔ)試題

    下面是一個java的基礎(chǔ)試題,我也記不起來在哪里看到了,應(yīng)該有類似這樣的題。我們來看一下。
    例題1 :
    QUESTION NO: 1

      1、

    public class Test 

     


    QUESTION NO: 2

       2,

    public class Test {
        
        
    public static void group(test1 a){
            a.setId(
    "2");
        }
        
        
    public static void main(String arg[]){
            test1 a 
    =  new Test().new test1();
            a.setId(
    "1");
            group(a);
            System.out.println(a.getId());
        }

        
        
    class test1{
            String id;
            String name;
            
    public String getId() {
                
    return id;
            }

            
    public void setId(String id) {
                
    this.id = id;
            }

            
    public String getName() {
                
    return name;
            }

            
    public void setName(String name) {
                
    this.name = name;
            }

        }


    根據(jù)上面的程序 1,我們看看得到的結(jié)果應(yīng)該是什么。
    這道題涉及的問題就是對象與對象以用的問題,這個問題大家很容易混淆。這道題的答案是1234。
    那么根據(jù)問題1,你能否知道問題2的答案呢,問題2的答案是2.
    分析:對對象引用的不是很熟悉的人一定以為問題2的答案應(yīng)該不變也是1,怎么是2呢.
    這就是涉及對象以及對象引用的問題了.
    一首先介紹一下對象的引用.
    創(chuàng)建對象
     創(chuàng)建一個對象,其實,它包含了四個動作。object a=new object();
    1)右邊的“new object”,是以object類為模板,在堆空間里創(chuàng)建一個object類對象(也簡稱為object對象)。
    2)末尾的()意味著,在對象創(chuàng)建后,立即調(diào)用object類的構(gòu)造函數(shù),對剛生成的對象進行初始化。構(gòu)造函數(shù)是肯定有的。如果你沒寫,Java會給你補上一個默認的構(gòu)造函數(shù)。
    3)左邊的“object a”創(chuàng)建了一個object類引用變量。所謂object類引用,就是以后可以用來指向object對象的對象引用。
    4)“=”操作符使對象引用指向剛創(chuàng)建的那個object對象。我們可以把這條語句拆成兩部分:
    object a;
    a= new object();
    效果是一樣的。這樣寫,就比較清楚了,有兩個實體:一是對象引用變量,一是對象本身。      
    在堆空間里創(chuàng)建的實體,與在數(shù)據(jù)段以及棧空間里創(chuàng)建的實體不同。盡管它們也是確確實實存在的實體,但是,我們看不見,也摸不著。
    不僅如此,我們仔細研究一下第二句,找找剛創(chuàng)建的對象叫什么名字?有人說,它叫“object”。不對,“object”是類(對象的創(chuàng)建模板)的名字。一個object類可以據(jù)此創(chuàng)建出無數(shù)個對象,這些對象不可能全叫“object”。      
    對象連名都沒有,沒法直接訪問它。我們只能通過對象引用來間接訪問對象。      
    為了形象地說明對象、引用及它們之間的關(guān)系,
    為了說明這個關(guān)系,我在網(wǎng)上看到別人的比喻挺好的我也引用一下:
    對象好比是一只很大的氣球,大到我們抓不住它。引用變量是一根繩,可以用來系汽球。       如果只執(zhí)行了第一條語句,還沒執(zhí)行第二條,此時創(chuàng)建的引用變量a還沒指向任何一個對象,它的值是null。引用變量可以指向某個對象,或者為null。它是一根繩,一根還沒有系上任何一個汽球的繩。執(zhí)行了第二句后,一只新汽球做出來了,并被系在a這根繩上。我們抓住這根繩,就等于抓住了那只汽球。再來一句:       object a1;就又做了一根繩,還沒系上汽球。如果再加一句:       a1= a;系上了。這里,發(fā)生了復(fù)制行為。但是,要說明的是,對象本身并沒有被復(fù)制,被復(fù)制的只是對象引用。結(jié)果是,a1也指向了a所指向的對象。兩根繩系的是同一只汽球。       如果用下句再創(chuàng)建一個對象:a1= new object();則引用變量a1改指向第二個對象。       從以上敘述再推演下去,
    我們可以獲得以下結(jié)論:(1)一個對象引用可以指向0個或1個對象(一根繩子可以不系汽球,也可以系一個汽球);(2)一個對象可以有N個引用指向它(可以有N條繩子系住一個汽球)。      
    如果再來下面語句:       a= a1;按上面的推斷,a也指向了第二個對象。這個沒問題。問題是第一個對象呢?沒有一條繩子系住它,它飛了。多數(shù)書里說,它被Java的垃圾回收機制回收了。這不確切。正確地說,它已成為垃圾回收機制的處理對象。至于什么時候真正被回收,那要看垃圾回收機制的心情了。
    了解了上面的對象的引用,我們應(yīng)該熟悉對象以及對象的引用了.我們回頭再說第一題

    java內(nèi)部提供了幾個類,這些類可以不使用new關(guān)鍵字來初始化,例如: string

    上面問題1,可以改成下面的方法
      1、

    public class Test {

      
    public static void changeStr(String str){

      str
    =new String("welcome");

      }


      
    public static void main(String[] args) {

      String str
    =new String("1234");

      changeStr(str);

      System.out.println(str);

      }


      }




    通過上面對對象應(yīng)用的理解,就知道原因了.

    posted on 2008-04-28 15:10 agun 閱讀(693) 評論(0)  編輯  收藏 所屬分類: java 基礎(chǔ)

    主站蜘蛛池模板: 免费国产成人午夜私人影视| 国产亚洲午夜高清国产拍精品| 亚洲中文无码永久免费| 国产乱子伦精品免费无码专区 | 97人伦色伦成人免费视频| 在线播放亚洲精品| 日本亚洲欧洲免费天堂午夜看片女人员| 久久国产精品免费看| 亚洲综合欧美色五月俺也去| 亚洲色偷拍区另类无码专区| 精品无码国产污污污免费网站| 亚洲av永久无码| 国产亚洲成av片在线观看| 动漫黄网站免费永久在线观看| 国产亚洲成在线播放va| 久久精品国产亚洲av日韩| 国产精品无码一区二区三区免费| 青青操免费在线视频| 亚洲精品动漫免费二区| 亚洲国产国产综合一区首页| 一级毛片直播亚洲| 91在线品视觉盛宴免费| 99在线热播精品免费99热| 男人天堂2018亚洲男人天堂| 亚洲日韩中文无码久久| 免费高清小黄站在线观看| 老司机69精品成免费视频| 亚洲欧美中文日韩视频| 久久亚洲国产精品五月天| 亚洲国产成人久久一区久久| 免费国产作爱视频网站| 99久久精品毛片免费播放| 久久亚洲中文无码咪咪爱| 亚洲日本香蕉视频观看视频| 怡红院亚洲怡红院首页| 国产精品深夜福利免费观看| 天天影视色香欲综合免费| 久艹视频在线免费观看| 国产激情久久久久影院老熟女免费 | 亚洲s码欧洲m码吹潮| 亚洲黄色免费观看|