黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java基本類型和引用類型的示例

Java基本類型和引用類型的示例

更新時間:2022-03-21 11:39:05 來源:動力節(jié)點 瀏覽1631次

我們在Java中有兩個不同的類別,它們是原始類型和Java引用類型

原始類型是byte、char、int、long 、 double、short和boolean。指定對象類型的類是引用類型,例如Integer、Double、Long等。

當涉及到原始類型的初始化時,它們默認初始化,例如boolean 初始化為 false,其他初始化為 0。它們還可以存儲其聲明類型的一個值。

引用類型變量是對象,因此它們將對象的位置存儲在內存中,并且默認初始化為空值。

內存中的原始類型

原始變量包含值。

在下面的內存視圖中,“變量 i”的值為 23,其內存地址為 4567,而“變量 c”的值為“d”,其內存地址為 5234。

內存中的引用類型

在引用類型中,變量包含值的地址。

在下面的內存視圖中,變量 str值指向該值,其地址為 2675。當我們查看地址 2675 時,該值是“sw test academy”。這樣,我們可以說變量str指向的是“sw test academy”這個值。

在下面的示例中,我們將同時查看內存中的原始類型和引用類型,以更好地理解這個概念。

根據上面的代碼,如下圖所示的 num1 和 num2 具有不同的地址并保存值 22 但 String 變量指向相同的值,它們的值是值“sw test academy”的地址,即900。

讓我們做一些例子,看看它們在代碼中的表現。

Java 示例中的原始類型

原始類型在 Java 中是按值傳遞的,我們將在下面的示例中看到這一點。變量a的值在我們在 modify 方法中修改后沒有改變,因為我們發(fā)送的是變量 a的副本,而不是它的引用。這樣,在modify()方法中,我們更改的是“副本 a 的值”,而不是“真正的 a ”或“ a 的引用”。在編程中,我們稱這種行為為“按值傳遞”。

公共類PrimitiveTypeExample {<字體>< /font > 
    @Test <字體>< /font >
    public void originalTypeExample () {<字體>< /font >   
        詮釋a = 8 ; <字體>< /字體>
        系統(tǒng)。出來。println ( "修改前:" + a ) ; <字體>< /字體>
        修改(一);<字體>< /字體>
        系統(tǒng)。出來。println ( "修改后:" + a ) ; <字體>< /字體>
    }<字體>< /font >
<字體>< /字體>
    私有靜態(tài)無效修改(int a ){<字體>< /font >    
       - 一種; //在這里,a的值不會改變,因為a來這里不是作為參考。<font></font>
        系統(tǒng)。出來。println ( "方法內部a的值:" + a ) ; <字體>< /字體>
    }<字體>< /font >
}

輸出

Java 示例中的引用類型

在下面的示例中,modifyAndSum()方法不會更改原始數組,因為在此方法中,我們正在創(chuàng)建數組的副本并對這個Java復制數組進行操作。這就是為什么在我們測試中的modifyAndSum()方法之前和之后,數組元素的總和是相同的。但是,我們將數組的引用發(fā)送給sum()方法,這就是為什么在sum()方法中我們要更改原始數組。這在編程中稱為“按引用傳遞” 。

公共類ReferenceTypeExample {<字體>< /font > 
    @Test <字體>< /font >
    public void referenceTypeExample () {<字體>< /font >   
        int [] myArr = new int [] { 4 , 5 } ; <字體>< /字體>    
<字體>< /字體>
        系統(tǒng)。出來。println ( "在 modifyAndSum 方法之前:" + ( myArr [ 0 ] + myArr [ 1 ])) ; //所有前數組中數字的總和。<font></font>
        modifyAndSum ( myArr ) ; <字體>< /字體>
        系統(tǒng)。出來。println ( "modifyAndSum方法后:" + ( myArr [ 0 ] +myArr [ 1 ])) ; //modifyAndSum 方法沒有改變原始數組。<font></font>
        總和(myArr );<字體>< /字體>
        系統(tǒng)。出來。println ( "求和后的方法:" + ( myArr [ 0 ] + myArr [ 1 ])) ; //Sum 方法因為引用類型而改變了 myArr!<font></font>
    }<字體>< /font >
<字體>< /字體>
    private static void modifyAndSum ( int [] arr ) {< font >< /font >    
        arr = 數組。copyOf ( arr, arr.length ) ; //這里,我們正在創(chuàng)建一個新數組!修改不會影響原始數組。<font></font>
        arr [ 0 ] --; <字體>< /字體>
        系統(tǒng)。出來。println ( "內部 modifyAndSum 方法:" + ( arr [ 0 ] + arr [ 1 ])) ; <字體>< /字體>
    }<字體>< /font >
<字體>< /字體>
    private static void sum ( int [] arr ) {< font >< /font >    
        系統(tǒng)。出來。println ( "內部求和法:" + ( arr [ 0 ] + arr [ 1 ])) ; //這里我們添加原始數組的值。<font></font>
        arr [ 0 ] --; //這里,我們正在修改原始數組,因為我們作為參考發(fā)送。<font></font>
    }<字體>< /font >
}

輸出

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 天天拍天天干 | 在线免费国产视频 | 波多野结衣在线观看一区二区三区 | 成人伦理在线观看 | 中文日韩亚洲欧美制服 | 一区二区三区免费在线观看 | 天堂va欧美ⅴa亚洲va一国产 | 成人高清视频在线观看大全 | 免费看又黄又爽又猛的视频软件- | 日韩一区二区三区免费体验 | 日本动漫的18涩涩视频 | 欧美成人综合视频 | 国内精品久久影视免费 | 精品国产免费人成高清 | 99在线公开免费视频 | 日本三级3本三级带黄 | 老司机亚洲精品 | 可以免费看的黄色网址 | 一级毛片免费网站 | 日日摸夜夜添欧美一区 | 放荡的美妇一区二区三区 | 国产精品综合色区在线观看 | 高清中文字幕免费观在线 | 全黄一级裸片视频免费区 | 男女性激烈动态图无遮挡 | 老湿影院在线播放 | 免费在线观看一级毛片 | 名优写真一区二区在线 | 99re在线播放视频 | 日本天堂网站 | 黄色免费一级片 | 国产成人一区二区三中文 | 久久天天拍天天爱天天躁 | 羞羞午夜| 天天操天天干天天拍 | 久草高清视频 | 国产一线大片免费观看 | a级毛片在线视频免费观看 a级免费看 | 国产一区中文字幕在线观看 | 黄免费观看 | 国产成人一区二区三区影院免费 |