久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Java數(shù)組知識點(總結分享)

      本篇文章給大家?guī)砹岁P于java的相關知識,其中主要介紹了關于數(shù)組的相關問題,包括了數(shù)組的定義、數(shù)組的屬性以及內存圖還有常見的一些問題,下面一起來看一下,希望對大家有幫助。

      Java數(shù)組知識點(總結分享)

      推薦學習:《java視頻教程》

      數(shù)組的定義

      1.概述

      • 假如有一個班同學的成績需要存儲,該使用什么方法呢?
      • 像我們之前學習的,可以定義多個變量存儲不同的成績。但是要有1000多個學生,那么到定義1000多個變量嗎?當然不行,這就需要用到我們的數(shù)組了。

      2.靜態(tài)初始化數(shù)組

      • 特點:定義數(shù)組的時候直接給數(shù)組賦值,由系統(tǒng)決定數(shù)組長度

      通用格式:

      數(shù)據(jù)類型[] 數(shù)組名 = { 元素1,元素2 ,元素3,… }; 例如: int [] array= {1,2,3,4,5}; double[] scores = {88.5, 99.5, 59.5};

      3.動態(tài)初始化數(shù)組

      • 特點:定義數(shù)組時確了定元素的類型和數(shù)組的長度,之后存入數(shù)據(jù)

      通用格式:

      數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[長度]; 例如: int [] array= new int[5]; double[] scores = new double[3];

      默認值:

      數(shù)據(jù)類型 具體定義類型 默認值
      基本類型

      byte、short、char、int、long

      0

      float、double

      0.0

      boolean

      false
      引用類型

      類、接口、數(shù)組、String

      null

      4.總結

      • 數(shù)組適合同種類型大量數(shù)據(jù)
      • 靜態(tài)初始化適合知道了元素值
      • 動態(tài)初始化適合不清楚存入哪些數(shù)據(jù)

      數(shù)組的屬性

      1.訪問

      • 一般訪問數(shù)組的方式為:
      數(shù)組名稱[索引]

      例題:

      //靜態(tài)初始化數(shù)組 int [] array= {1,2,3,4,5}; System.out.println(array[0]);//輸出 1 System.out.println(array[1]);//輸出 2 System.out.println(array[3]);//輸出 4

      2.長度

      • 長度可以直接調用length得到數(shù)組的長度。

      例題:

      //靜態(tài)初始化數(shù)組 int [] array= {1,2,3,4,5}; System.out.println(array.length);//調用方法,輸出長度 5 //最大索引array.length-1

      3.遍歷

      • 遍歷就是一個一個數(shù)組元素的訪問,主要應用在搜索、數(shù)據(jù)統(tǒng)計……
      • 我們之前學了第7天:循環(huán)結構、第6天:分支結構,下面通過for循環(huán)遍歷一個數(shù)組

      例題:

      • 給定元素 {10,8,9,4,5,6,8,71,2,3,9,99},用靜態(tài)數(shù)組存儲并輸出數(shù)組中大于5的元素?

      編碼實現(xiàn)

      //靜態(tài)初始化數(shù)組 int [] array= {10,8,9,4,5,6,8,71,2,3,9,99}; for(int i=0;i<array.length;i++) { 	if(array[i]>5) 		System.out.println(array[i]); }

      輸出結果

      10 8 9 6 8 71 9 99

      內存圖

      Java數(shù)組知識點(總結分享)

      • Java在程序運行時,需要在內存中分配空間,對空間進行了不同區(qū)域的劃分。
      • 棧內存:存儲局部變量,使用完畢立即消失
      • 堆內存:存儲new 出來的內容(對象、實體),地址使用完畢在垃圾回收器空閑時回收

      1.單數(shù)組內存圖

      • 下面的創(chuàng)建數(shù)組代碼,實現(xiàn)它的內存關系圖

      編碼實現(xiàn)

      //動態(tài)初始化數(shù)組 int [] arr=new int[3]; System.out.println(arr); System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); //修改值 arr[0]=100; arr[2]=200; System.out.println(arr); System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]);

      輸出結果

      [I@15db9742 0 0 0 [I@15db9742 100 0 200

      原理講解:

      Java數(shù)組知識點(總結分享)

      • 動態(tài)初始化先在堆內存生成一個new 一個arr 地址值,具體看編譯器的結果,這里假設001。由于動態(tài)初始化,所以每個元素都有一個初始值,具體可以看上面的表。我們輸出元素,先訪問數(shù)組名地址,到堆內存下標,再輸出元素值。
      • 修改數(shù)組值,歷程和查看相同,只不過多了一步修改的過程,如下圖:

      Java數(shù)組知識點(總結分享)

      2.多數(shù)組內存圖

      Java數(shù)組知識點(總結分享)

      • 多個數(shù)組和單數(shù)組內存使用原理相同,這里我就不過多講述了。

      3.數(shù)組指向相同內存

      • 假如我們把兩個數(shù)組的地址值改為相同,修改后的結果該是如何,如下面的代碼。

      編碼實現(xiàn)

      //動態(tài)初始化數(shù)組 int [] arr=new int[3]; arr[0]=100; arr[1]=200; arr[2]=300; System.out.println(arr); System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]);  int [] arr2=arr; arr2[0]=111; arr2[1]=222; arr2[2]=333;  System.out.println(arr); System.out.println(arr[0]); System.out.println(arr2); System.out.println(arr2[0]);

      輸出結果

      [I@15db9742 100 200 300 [I@15db9742 111 [I@15db9742 111

      原理講解:

      Java數(shù)組知識點(總結分享)

      • 第一個數(shù)組在堆內存的地址為001,第二個數(shù)組也為001,所以修改第二個數(shù)組的值,其實都是同一個數(shù)組內存。第一個數(shù)組的值也會隨著改變,結果如下:

      Java數(shù)組知識點(總結分享)

      常見問題

      1.索引越界

      //靜態(tài)初始化數(shù)組 int [] array= {1,2,3}; System.out.println(array[3]);
      • 上面的代碼運行之后,會出現(xiàn)下面的報錯異常:
      • Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
      • 解釋:我們靜態(tài)化初始數(shù)組給了3個數(shù)字,最大索引為2,當我們訪問3時,就會報錯

      2.空指針異常

      //動態(tài)初始化數(shù)組 int [] array= new int[3]; array=null; System.out.println(array[0]);
      • 上面的代碼運行之后,會出現(xiàn)下面的報錯異常:
      • Exception in thread "main" java.lang.NullPointerException
      • 解釋:我們將數(shù)組置為null,導致訪問的數(shù)組不指向堆內存的數(shù)據(jù)

      推薦學習:《java視頻教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號