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

JavaSE一維數(shù)組和二維數(shù)組用法詳解

 更新時間:2024年04月03日 11:26:16   作者:逸狼  
數(shù)組存儲同一種數(shù)據(jù)類型多個元素的集合,既可以存儲基本數(shù)據(jù)類型,也可以存儲引用數(shù)據(jù)類型,這篇文章主要給大家介紹了關(guān)于JavaSE一維數(shù)組和二維數(shù)組用法的相關(guān)資料,需要的朋友可以參考下

一維數(shù)組

數(shù)組:可以看成是相同類型元素的一個集合。

基本語法

T[] 數(shù)組名 = new T[N]; 

  • T:表示數(shù)組中存放元素的類型
  • T[]:表示數(shù)組的類型
  • N:表示數(shù)組的長度

初始化

int[] array={1,2,3,4,5};
int []arr1=new int[]{1,3,4};
int []aa=new int[19];

遍歷和打印

  • 數(shù)組是一段連續(xù)的內(nèi)存空間,因此支持隨機訪問,即通過下標訪問快速訪問數(shù)組中任意位置的元素  
  • 下標從0開始,介于[0, N)之間不包含N,N為元素個數(shù),不能越界,否則會報出下標越界異常。

三種方法

        public static void main(String[] args) {
            int[] array={1,2,3,4,5};
            System.out.println(array.length);//求數(shù)組長度
            System.out.println(array[2]);//通過下標訪問數(shù)組元素

            //遍歷打印數(shù)組
            for (int i = 0; i < array.length; i++) {
                System.out.print(array[i]+" ");
            }

            //for each循環(huán) 遍歷數(shù)組,把每一個值放入x中,獲取不到下標
            for (int x:array) {
                System.out.print(x+" ");
            }

            //借助Java的原生的方法   
            String ret= Arrays.toString(array);//將數(shù)組元素以字符串的形式輸出
            System.out.println(ret);

數(shù)組是引用型變量

引用變量并不直接存儲對象本身,可以簡單理解成存儲的是對象在堆中空間的起始地址。通過該 地址,引用變量便可以去操作對象。

JVM內(nèi)存分布

  • 程序計數(shù)器 (PC Register): 只是一個很小的空間, 保存下一條執(zhí)行的指令的地址
  • 虛擬機棧(JVM Stack): 與方法調(diào)用相關(guān)的一些信息,每個方法在執(zhí)行時,都會先創(chuàng)建一個棧幀,棧幀中包含 有:局部變量表、操作數(shù)棧、動態(tài)鏈接、返回地址以及其他的一些信息,保存的都是與方法執(zhí)行時相關(guān)的一 些信息。比如:局部變量。當方法運行結(jié)束后,棧幀就被銷毀了,即棧幀中保存的數(shù)據(jù)也被銷毀了。
  • 本地方法棧(Native Method Stack): 本地方法棧與虛擬機棧的作用類似. 只不過保存的內(nèi)容是Native方法的局 部變量. 在有些版本的 JVM 實現(xiàn)中(例如HotSpot), 本地方法棧和虛擬機棧是一起的
  • 堆(Heap): JVM所管理的最大內(nèi)存區(qū)域. 使用 new 創(chuàng)建的對象都是在堆上保存 ,堆是隨著程序開始運行時而創(chuàng)建,隨著程序的退出而銷毀,堆中的數(shù)據(jù)只要還有在使用,就不會被銷 毀。
  • 方法區(qū)(Method Area): 用于存儲已被虛擬機加載的類信息、常量、靜態(tài)變量、即時編譯器編譯后的代碼等數(shù) 據(jù). 方法編譯出的的字節(jié)碼就是保存在這個區(qū)域 現(xiàn)在我們只簡單關(guān)心堆 和 虛擬機棧這兩塊空間

基本類型變量與引用類型變量的區(qū)別

  • 基本數(shù)據(jù)類型創(chuàng)建的變量,稱為基本變量,該變量空間中直接存放的是其所對應(yīng)的;
  • 而引用數(shù)據(jù)類型創(chuàng)建的變量,一般稱為對象的引用,其空間中存儲的是對象所在空間的地址。

null

可以將數(shù)組置為null

int[] arr = null;

null 的作用類似于 C 語言中的 NULL (空指針), 都是表示一個無效的內(nèi)存位置. 因此不能對這個內(nèi)存進行任何讀寫操 作. 一旦嘗試讀寫, 就會拋出 NullPointerException.

注意: Java 中并沒有約定 null 和 0 號地址的內(nèi)存有任何關(guān)聯(lián)

數(shù)組傳參和返回

本質(zhì)上還是傳值調(diào)用

例如想要實現(xiàn)將原數(shù)組的每一位元素都擴大兩倍

有兩種實現(xiàn)方法

    //無返回值
    public static void func(int[]array1){
        for (int i = 0; i < array1.length; i++) {
            array1[i]= array1[i]*2;//將每個數(shù)字擴大2倍
        }
    }

    //數(shù)組作為返回值
    public static int[] func2(int[]array1){
        int[]tmp=new int[array1.length];
        for (int i = 0; i < array1.length; i++) {
            tmp[i]=array1[i]*2;
        }
        return tmp;//Java中數(shù)組可以是返回值
    }

    public static void main(String[] args) {
        int[] array={1,2,4,5};
        int[] retArray=func2(array);//本質(zhì)上還是傳值調(diào)用
        String ret=Arrays.toString(retArray);
        System.out.println(ret);
    }

總結(jié)

所謂的 "引用" 本質(zhì)上只是存了一個地址. Java 將數(shù)組設(shè)定成引用類型, 這樣的話后續(xù)進行數(shù)組參數(shù)傳參, 其實 只是將數(shù)組的地址傳入到函數(shù)形參中. 這樣可以避免對整個數(shù)組的拷貝(數(shù)組可能比較長, 那么拷貝開銷就會很大).

二維數(shù)組

基本語法

數(shù)據(jù)類型[][] 數(shù)組名稱 = new 數(shù)據(jù)類型 [行數(shù)][列數(shù)] { 初始化數(shù)據(jù) };

初始化

有三種

        //二維數(shù)組
        int[][]array={{1,3,4,5},{6,6,4,7}};//是第二種的簡化,常用
        int[][]array2=new int[][]{{1,3,4,5},{6,6,4,7}};
        int[][]array3=new int[2][4];//全部初始化為0

遍歷和打印

有兩種

 public static void main(String[] args) {
        //二維數(shù)組
        int[][]array={{1,3,4,5},{6,6,4,7}};
//第一種,要數(shù)行和列的個數(shù)
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.print(array[i][j]+" ");
            }
            System.out.println();
        }
        System.out.println("#########");
        //另一種不用數(shù)二維數(shù)組的個數(shù)的方法
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j]+" ");
            }
            System.out.println();
        }
    }

結(jié)果

總結(jié) 

到此這篇關(guān)于JavaSE一維數(shù)組和二維數(shù)組用法詳解的文章就介紹到這了,更多相關(guān)JavaSE一維數(shù)組和二維數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java和 javaw 及 javaws的區(qū)別解析

    java和 javaw 及 javaws的區(qū)別解析

    這篇文章主要介紹了java和 javaw 及 javaws的區(qū)別解析,本文通過實例給大家詳細介紹,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Java中實現(xiàn)二叉樹的遍歷與重構(gòu)

    Java中實現(xiàn)二叉樹的遍歷與重構(gòu)

    這篇文章主要介紹了Java中實現(xiàn)二叉樹的遍歷與重構(gòu),樹是一種非線性的數(shù)據(jù)結(jié)構(gòu),它是由n(n>=0)個有限結(jié)點組成一個具有層次關(guān)系的集合,把它叫做樹是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的,需要的朋友可以參考下
    2023-10-10
  • 5分鐘快速了解String.trim()到底做了什么事

    5分鐘快速了解String.trim()到底做了什么事

    trim方法一般用來去除空格,但是根據(jù)JDK API的說明,該方法并不僅僅是去除空格,它能夠去除從編碼'\u0000'至'\u0020'的所有字符,這篇文章主要給大家介紹了如何通過5分鐘快速了解String.trim()到底做了什么事,需要的朋友可以參考下
    2021-11-11
  • Java捕獲ThreadPoolExecutor內(nèi)部線程異常的四種方法

    Java捕獲ThreadPoolExecutor內(nèi)部線程異常的四種方法

    這篇文章主要為大家詳細介紹了Java捕獲ThreadPoolExecutor內(nèi)部線程異常的四種方法,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下
    2025-03-03
  • 淺談Java隨機數(shù)的原理、偽隨機和優(yōu)化

    淺談Java隨機數(shù)的原理、偽隨機和優(yōu)化

    這篇文章主要介紹了淺談Java隨機數(shù)的原理、偽隨機和優(yōu)化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Java?POI導出Excel時合并單元格沒有邊框的問題解決

    Java?POI導出Excel時合并單元格沒有邊框的問題解決

    這篇文章主要給大家介紹了關(guān)于Java?POI導出Excel時合并單元格沒有邊框的問題解決辦法,文中通過代碼介紹的非常詳細,對大家學習或者使用java具有一定的參考學習價值,需要的朋友可以參考下
    2023-07-07
  • Java空格替換逗號的實現(xiàn)示例

    Java空格替換逗號的實現(xiàn)示例

    在編程中,我們經(jīng)常需要對字符串進行各種處理,其中一個常見的需求是將字符串中的逗號替換為空格,本文主要介紹了Java空格替換逗號的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Java設(shè)計模式之觀察者模式

    Java設(shè)計模式之觀察者模式

    這篇文章主要介紹了Java設(shè)計模式之觀察者模式,觀察者模式,是一種行為性模型,又叫發(fā)布-訂閱模式,他定義對象之間一種一對多的依賴關(guān)系,使得當一個對象改變狀態(tài),則所有依賴于它的對象都會得到通知并自動更新,需要的朋友可以參考下
    2023-11-11
  • TransmittableThreadLocal通過javaAgent實現(xiàn)線程傳遞并支持ForkJoin

    TransmittableThreadLocal通過javaAgent實現(xiàn)線程傳遞并支持ForkJoin

    這篇文章主要介紹了TransmittableThreadLocal通過javaAgent實現(xiàn)線程傳遞并支持ForkJoin詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • SpringBoot啟動指定profile的多種方式

    SpringBoot啟動指定profile的多種方式

    這篇文章主要介紹了SpringBoot啟動指定profile的多種方式,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09

最新評論

汨罗市| 建湖县| 航空| 乐业县| 建昌县| 晋州市| 敦化市| 开化县| 措美县| 延吉市| 西吉县| 徐闻县| 虞城县| 白银市| 广宗县| 普定县| 新干县| 全州县| 乌海市| 喜德县| 穆棱市| 神木县| 陈巴尔虎旗| 湖北省| 新乡市| 泰安市| 松潘县| 棋牌| 晋中市| 花莲县| 大港区| 南部县| 当阳市| 南雄市| 平南县| 太白县| 商河县| 融水| 丰宁| 天峨县| 中超|