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

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

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

    samtiger


    QQ:418148757
    Name:yangchuan
    數據加載中……
    關于java數據類型和參數
        最近看了一些資料,清理了一下java基礎方面的知識,現寫下點筆記,待以后查閱。
        1: java的數據類型可以分為引用類型和原始類型(或內置類型)。
        2:java編程語言只有值傳遞參數。
           
           參考了網上的一些說話,邊的兩點其實可以通過一個例子來解釋。
         
     class TblBsUserType(){
         
    private Long butyId;
         
    private TblBsDepartmentType tblBsDepartmentType;
         
    private String butyName;
         
    private String butyPassword;
         
    private String butyRemark;
         
    private String butyEmail;
         
         
    public Long getButyId() {
            
    return this.butyId;
        }

        
        
    public void setButyId(Long butyId) {
            
    this.butyId = butyId;
        }

       
    //為了保持簡潔,其他的屬性與上相似
      }
     

    上邊我創建了一個間單的用戶實體類,現在我們來構建這個實體類的對象,代碼如下:
    public class TestUser extends TestCase {

    public void testAddUser() throws Exception {
                
            TblBsUserType user 
    = new TblBsUserType();
    }


    }
    上邊我創建了一個用戶對象,實際上上邊這個過程,可以理解成這么幾個步驟或狀態:
     a: 右邊    new TblBsUserType(),這句是在內存中創建了一個用戶實例,并通過“()”這對小括號去調用了不帶參數的構造函數來初始化這個對象
     b: 并用 user這個變量。指向了這個對象,所以user就可以說是對這個對象的引用。
     c: 當有一句user=null;的時候,表明user不再指向上邊這個對象,上邊這個對象此時就不在被任何對象牽制,這個時候的它就成為了垃圾回收機制關注的對象,等待被其回收。至于什么時候回收,就看垃圾回收機制什么時候執行了。
        所以在把user作為參數傳給某個方法的時候,user是被值copy過去的,因此我們可以去改變user引用的這個對象里的任何東西,但是,我們在方法里頭改變了user參數的引用,跳出函數后,user變量還是指向上邊這個對象的。
    參考資料如下:
       /////////////////////以下內容來自http://www.ibm.com/developerworks/cn/java/passbyval/index.html////////////

    Java 應用程序中的變量可以為以下兩種類型之一:引用類型或基本類型。當作為參數傳遞給一個方法時,處理這兩種類型的方式是相同的。兩種類型都是按值傳遞的;沒有一種按引用傳遞。這是一個重要特性,正如隨后的代碼示例所示的那樣。

    在繼續討論之前,定義 按值傳遞按引用傳遞這兩個術語是重要的。 按值傳遞意味著當將一個參數傳遞給一個函數時,函數接收的是原始值的一個副本。因此,如果函數修改了該參數,僅改變副本,而原始值保持不變。 按引用傳遞意味著當將一個參數傳遞給一個函數時,函數接收的是原始值的內存地址,而不是值的副本。因此,如果函數修改了該參數,調用代碼中的原始值也隨之改變。

    關于 Java 應用程序中參數傳遞的某些混淆源于這樣一個事實:許多程序員都是從 C++ 編程轉向 Java 編程的。C++ 既包含非引用類型,又包含引用類型,并分別按值和按引用傳遞它們。Java 編程語言有基本類型和對象引用;因此,認為 Java 應用程序像 C++ 那樣對基本類型使用按值傳遞,而對引用使用按引用傳遞是符合邏輯的。畢竟您會這么想,如果正在傳遞一個引用,則它一定是 按引用傳遞的。很容易就會相信這一點,實際上有一段時間我也相信是這樣,但這不正確。

    在 C++ 和 Java 應用程序中,當傳遞給函數的參數不是引用時,傳遞的都是該值的一個副本(按值傳遞)。區別在于引用。在 C++ 中當傳遞給函數的參數是引用時,您傳遞的就是這個引用,或者內存地址(按引用傳遞)。在 Java 應用程序中,當對象引用是傳遞給方法的一個參數時,您傳遞的是該引用的一個副本(按值傳遞),而不是引用本身。請注意,調用方法的對象引用和副本都指向同一個對象。這是一個重要區別。Java 應用程序在傳遞不同類型的參數時,其作法與 C++ 并無不同。Java 應用程序按值傳遞所有參數,這樣就制作所有參數的副本,而不管它們的類型。

    ////////////////////////////////////////-----------------具體請到該網站察看------------------------------

    posted on 2007-09-24 20:13 sam.chuan.yang 閱讀(852) 評論(2)  編輯  收藏

    評論

    # re: 關于java數據類型和參數 2007-09-27 19:25 千里冰封

    JAVA里面都是按值傳遞 的,引用的時候,是引用的值的拷貝
      回復  更多評論    

    # re: 關于java數據類型和參數 2007-09-30 09:53 yi.c

    進一步明白了
      回復  更多評論    

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲成人一级电影| 亚洲AV区无码字幕中文色| 亚洲日韩精品无码专区加勒比 | 麻豆视频免费播放| 亚洲色图在线观看| 久久国产乱子伦精品免费看| 亚洲AV午夜成人影院老师机影院| 韩日电影在线播放免费版| 亚洲综合国产一区二区三区| 国产精品免费久久久久影院 | 美女视频黄频a免费观看| 国产片免费在线观看| 曰批全过程免费视频免费看 | 亚洲AV无码专区电影在线观看| 日韩免费无码一区二区三区| 亚洲精品中文字幕乱码影院| 亚洲成在人线aⅴ免费毛片| 亚洲av无码日韩av无码网站冲| 免费人妻av无码专区| 久久九九免费高清视频| 亚洲AV成人无码久久精品老人 | 成年男女免费视频网站| 国产亚洲欧美在线观看| 久久久久亚洲AV成人网| 国产精品99精品久久免费| 亚洲成a人片在线观看中文app| 女人18毛片水真多免费看| 一级做a毛片免费视频| 亚洲第一福利视频| 在线成人a毛片免费播放 | 亚洲国产精品久久久久婷婷软件 | 亚洲AV日韩精品一区二区三区| 成av免费大片黄在线观看| 亚洲国产综合专区在线电影| 亚洲欧洲免费无码| 国产视频精品免费视频| 亚洲激情校园春色| 免费a级毛片无码a∨性按摩| 免费国产在线视频| 亚洲av第一网站久章草| 国产成人无码综合亚洲日韩|