最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中數(shù)組與棧和堆之間的關系說明

 更新時間:2025年08月06日 14:51:53   作者:nsjqj  
文章講解了Java數(shù)組的初始化方式、內(nèi)存存儲機制、引用傳遞特性及遍歷、排序、拷貝技巧,強調(diào)引用數(shù)據(jù)類型方法調(diào)用時形參可能修改實參,但需注意引用指向單一對象的特性

Java中數(shù)組與棧和堆的關系

關于數(shù)組的定義這里就不做敘述,因為與C語言并無不同之處。

數(shù)組的初始化有三種方式:

int[ ] array1 = { 1, 2, 3, 4, 5 };
int[ ] array2 = new int[ ] { 1, 2, 3, 4, 5 };
int[ ] array3 = new int[10 ];

第一種和第二種它們兩個沒有區(qū)別,寫哪個表示的含義都相同;第三個則類似C語言中的不完全初始化,只是給定了范圍,里面的數(shù)字編譯器默認會給0。

關于數(shù)組在內(nèi)存中的存儲、上述的語法以及不同的數(shù)據(jù)類型所代表的默認值,如下圖所示:

接下來的圖描述了關于兩個引用指向同一個對象時的內(nèi)存棧和堆的分配情況,了解了這些才算是真正理解了數(shù)組。(JVM:Java虛擬機)

接下來我們來認識下null (空引用)。

在前面基本數(shù)據(jù)類型的方法的引用我們說過,基本數(shù)據(jù)類型傳參時形參不會影響實參的值;但是今天要講的引用數(shù)據(jù)類型的形參可以改變實參的值,先從一道例題來引入這個內(nèi)容。

問:給定一個數(shù)組{ 1, 2,3, 4, 5 },將數(shù)組內(nèi)的元素全部擴大兩倍,怎么寫?

下面是運行時的編譯器的處理過程:

將其放在棧和堆上的表示方法:

那么問題來了,引用數(shù)據(jù)類型在調(diào)用方法時的形參一定會修改實參的值嗎?

結論:不一定,看下圖:

總結:一個引用,不能指向多個對象。否則有可能不會修改實參值。

遍歷數(shù)組

還有一種遍歷數(shù)組的方式:

這里使用了 Arrays的toString 方法,把傳入的參數(shù)array表示的數(shù)組,以字符串的形式進行輸出了

例題:給定數(shù)組{ 1, 2, 3, 4,   5,6 }求數(shù)組中元素的平均值;

接下來是一些編程小技巧

1. 在數(shù)組中使用循環(huán)時,往往循環(huán)的限制條件是數(shù)組長度減一(因為是從 0 下標開始) ,所以我們可以直接用 array.length - 1 來表示這個限制條件(length表示長度),如圖:

2.我們在C語言時期知道二分查找是只能對于一個有序數(shù)組進行查找,那么如果是無序的、亂序的該怎么樣進行排序呢,有兩種方法:使用 Arrays.sort(array); 這個語句進行排序  或者  用循環(huán)來弄一個冒泡排序。(這里只講語句排序)如圖:

3.數(shù)組拷貝、數(shù)組部分拷貝、擴大數(shù)組。全部都各自一張圖來表示:

使用 from - to 進行擴大(不用專門去寫from和to,如果你寫的正確,編譯器會自動識別上去),取值范圍是(   ];  ,例如本圖是(1 ,3] 

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java異步調(diào)用轉(zhuǎn)同步的方法

    Java異步調(diào)用轉(zhuǎn)同步的方法

    這篇文章主要介紹了Java異步調(diào)用轉(zhuǎn)同步的方法,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • SSM框架實現(xiàn)分頁和搜索分頁的示例代碼

    SSM框架實現(xiàn)分頁和搜索分頁的示例代碼

    本篇文章主要介紹了SSM框架實現(xiàn)分頁和搜索分頁的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Java實現(xiàn)解出世界最難九宮格問題

    Java實現(xiàn)解出世界最難九宮格問題

    這篇文章主要介紹了Java實現(xiàn)解出世界最難九宮格問題,芬蘭數(shù)學家因卡拉花費3個月設計出了世界上迄今難度最大的數(shù)獨游戲,而且它只有一個答案,本文使用Java實現(xiàn)解出,需要的朋友可以參考下
    2015-01-01
  • SpringBoot配置主從數(shù)據(jù)庫實現(xiàn)讀寫分離

    SpringBoot配置主從數(shù)據(jù)庫實現(xiàn)讀寫分離

    現(xiàn)在的 Web 應用大都是讀多寫少,本文主要介紹了SpringBoot配置主從數(shù)據(jù)庫實現(xiàn)讀寫分離,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • sentinel流量控制框架(目錄設置)

    sentinel流量控制框架(目錄設置)

    Sentinel?是面向分布式服務架構的高可用流量防護組件幫助開發(fā)者保障微服務的穩(wěn)定性,本文重點給大家介紹sentinel流量控制框架的相關知識,感興趣的朋友一起看看吧
    2022-03-03
  • Java的HttpClient中使用POST請求傳遞參數(shù)兩種常見方式

    Java的HttpClient中使用POST請求傳遞參數(shù)兩種常見方式

    Apache HttpClient為開發(fā)者提供了豐富的接口,用于管理HTTP連接并執(zhí)行請求,下面這篇文章主要介紹了Java的HttpClient中使用POST請求傳遞參數(shù)兩種常見方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-06-06
  • Maven Spring jar包啟動報錯問題解決方案

    Maven Spring jar包啟動報錯問題解決方案

    maven 編譯jar包,放在linux服務器啟動不起來,提示:xxxx-0.0.1-SNAPSHOT.jar中沒有主清單屬性,接下來通過本文給大家分享問題原因及解決方案,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • Springboot多種情況yml配置代碼實例

    Springboot多種情況yml配置代碼實例

    這篇文章主要介紹了Springboot多種情況yml配置代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Java中使用MongoDB數(shù)據(jù)庫實例Demo

    Java中使用MongoDB數(shù)據(jù)庫實例Demo

    MongoDB是由C++語言編寫的,基于分布式文件存儲的數(shù)據(jù)庫,是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產(chǎn)品,是最接近于關系型數(shù)據(jù)庫的NoSQL數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關于Java中使用MongoDB數(shù)據(jù)庫的相關資料,需要的朋友可以參考下
    2023-12-12
  • SpringBoot在IDEA中實現(xiàn)熱部署的步驟

    SpringBoot在IDEA中實現(xiàn)熱部署的步驟

    這篇文章主要介紹了SpringBoot在IDEA中實現(xiàn)熱部署的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-11-11

最新評論

榆林市| 晴隆县| 石屏县| 成安县| 花垣县| 泸西县| 剑河县| 济宁市| 大竹县| 宜春市| 奎屯市| 龙川县| 芜湖市| 南丰县| 岑溪市| 永康市| 盐亭县| 根河市| 福州市| 政和县| 天台县| 镇江市| 芜湖县| 河西区| 阿克陶县| 霍邱县| 黑河市| 武强县| 铁岭市| 如皋市| 栾川县| 西城区| 绥芬河市| 时尚| 吉水县| 防城港市| 乐平市| 郎溪县| 石棉县| 广宗县| 永嘉县|