1. 程式人生 > >java陣列基本概念

java陣列基本概念

陣列動態初始化

陣列是引用資料型別,有記憶體分配問題。
陣列動態初始化(宣告並開闢陣列):

陣列型別[] 陣列名稱 = new 陣列型別[長度];
int[] data = new int[5];

a.陣列通過下標索引來取得元素,預設從0開始。陣列下標超出陣列長度,抱一個數組越界異常(執行時異常:"java.lang.ArrayIndexOutOfBoundsException)
b.陣列中每個元素都有預設值,預設值是該資料型別預設值
c.陣列名稱.length:取得陣列長度
d.陣列遍歷推薦使用for-each迴圈(僅限於陣列內容讀取),要修改陣列內容,還是使用常規for迴圈

public class Test{
    public static void main(String[] args){
        int[] x = new int[2];//開闢了一個長度為3的陣列
        System.out.println(x.length);
        x[0] = 1;//對陣列元素賦值
        x[1] = 2;
        for(int i:x){ //for-each迴圈
            System.out.println(i);//不使用下標的情況下遍歷陣列
        }
    }
   
}

執行結果:

2
1
2

當然陣列也可以分步進行陣列例項化:

int[] x = null;
x = new int[3];

陣列屬於引用資料型別,必須在使用前初始化,否則會NULLPointerException(執行異常)

陣列引用傳遞

public class Test{
    public static void main(String[] args){
        int[] x = null;
        x = new int[3];
        System.out.println(x.length);
        x[0] = 10;
        x[1] = 20;
        x[2] = 30;
        for(int i:x){ 
            System.out.println(i);
        }
    }
   
}

對上述程式碼進行陣列空間分析:
在這裡插入圖片描述
引用傳遞空間:同一塊堆記憶體空間可以被不同的棧記憶體所指向。

public class Test{
    public static void main(String[] args){
        int[] x = null;
        int[] temp = null;
        x = new int[3];
        System.out.println(x.length);
        x[0] = 10;
        x[1] = 20;
        x[2] = 30;
        for(int i:x){ 
            System.out.println(i);
        }
        temp = x;//引用傳遞
        temp[0] = 50;

    }
   
}

記憶體分析:
在這裡插入圖片描述
引用傳遞的記憶體分析都是類似的:同一塊堆被不同的棧記憶體指向。

陣列靜態初始化

簡化格式:陣列型別[ ] 陣列名稱 = {值,值…};
完整格式:陣列型別[ ] 陣列名稱 = new 陣列型別[ ]{值,值…};
eg:int[ ] data = new int[ ]{1,3,5,7,9};

在陣列定義時直接設定內容,根據值的個數確定陣列長度,且長度不可以修改
匿名陣列:使用一次就完了,不佔用棧空間

System.out.print(new int[]{1,3,5,7,9}[0]);

二維陣列

動態初始化

陣列型別[ ][ ] 陣列名稱 = new 陣列型別[行個數][列個數]
eg:int[ ][ ] data = new int[3][4];

靜態初始化

陣列型別[ ][ ] 陣列名稱 = new 陣列型別[ ][ ]{{第一行值},{第二行值},…};
data.length:行長度
data[x].length:列長度

public class Test{
    public static void main(String[] args){
       int[][] data = new int[3][4];
       for(int i = 0;i < 3; i++){
           for(int j = 0; j < 4; j++){
               System.out.print(data[i][j] + "、");
           }
           System.out.println(" ");
       }
       System.out.println(data.length);
       System.out.println(data[0].length);
    }
   
}

執行結果:

0、0、0、0、
0、0、0、0、
0、0、0、0、
3
4

相關推薦

java陣列基本概念

陣列動態初始化 陣列是引用資料型別,有記憶體分配問題。 陣列動態初始化(宣告並開闢陣列): 陣列型別[] 陣列名稱 = new 陣列型別[長度]; int[] data = new int[5]; a.陣列通過下標索引來取得元素,預設從0開始。陣列下標超出陣

Java程序基本概念

存在 劃分 操作數 catch this col 發生 con nbsp 大家好,在這裏跟大家講解一下關於Java程序的基本概念應用。 以下本人的介紹包括有以下的幾點: 一、標識符的定義 二、數據類型的劃分 三、運算符的應用 四、分支結構、循環結構、循環控制語法的應用 五、

Java容器---基本概念

一個 reac 通過 java容器 list 相同 -i order 元素 1.持有對象 Java容器類類庫的用途是“保存對象”,並將其劃分為兩個不同的概念: (1) Collection: 一個獨立元素的序列,這些元素都服從一條或多條規則。L

Java_52_陣列_陣列基本概念

陣列概述和特點 陣列的定義:陣列是相同型別資料的有序集合,陣列描述的是相同型別的若干個資料,按照一定的先後次序排列組合而成。其中,每一個數據稱作一個陣列元素,每個陣列元素可以通過一個下標來訪問他們。 陣列的四個基本特點: 1.其長度是確定的。陣列一旦被建立,它的大小就是不可以改變的。

052_陣列_陣列基本概念

一、陣列的概念介紹  陣列:陣列是相同型別資料的有序集合. 陣列描述的是相同型別的若干個資料,按照一定的先後次序排列組合而成。其中,每一個數據稱作一個數組元素,每個陣列元素可以通過一個下標來訪問它們. 二、陣列的四個基本特點:  1.其長度是確定的。陣列一旦被建立,它的大小就是不可以改變的。   2.其元素必

監視器–JAVA同步基本概念

原文連結  作者:X Wang  譯者:candy 大學有一門課程叫作業系統,學習過的同學應該都記得,監視器是作業系統實現同步的重要基礎概念,同樣它也用在JAVA的執行緒同步中,這篇文章用一種類推的思想解釋監視器”monitor”。 1.什麼是監視器 監視器可以看做是經過特殊佈置的建築,這個建

java-IO-基本概念

1.什麼是IO       Java中I/O操作主要是指使用Java進行輸入,輸出操作. Java所有的I/O機制都是基於資料流進行輸入輸出,這些資料流表示了字元或者位元組資料的流動序列。Java的I/O流提供了讀寫資料的標準方法。任何Java中表示資料來源的物

Java基本概念-三大迴圈

程式的三種結構:順序結構 分支結構和迴圈結構 1 正常迴圈的4個條件:迴圈條件:迴圈的入口                                             迴圈變數:用來控制迴圈次數                                

Java web的基本概念

一定的 本質 解析 計算機系統 tom 調用 war 保存 web模塊 概念一直是學習計算機軟件開發中經常遇到的問題,也是軟件行業最喜歡創造的東西。很多時候,學習計算機軟件開發遇到困難都是因為對某些概念的不理解,而不是因為技術本身有多麽復雜。Java Web作為Java

java多線程_01_線程的基本概念

bool 我們 優先 try 立即執行 合並 abcde rup unix 線程:一個程序裏邊不同的執行路徑 例子程序:這個例子程序是一條執行路徑。這個程序只有一個分支,就是main方法,叫主線程 public static void main(String[]

java基本概念

java gc一、JVM和jdk概念說明:1.JVM是Java虛擬機,所有的Java程序都在Java虛擬機中運。2.JDK是Java開發工具包,用來開發Java程序,是整個Java的核心,包括了Java運行環境、Java工具和Java基礎類庫3.jdk中有一個編譯器,可以把你的java源代碼編譯成可以在虛擬機

Java - 線程基本概念

完整 顯式 數據訪問 基本概念 重新 object www 外部 object類 【java並發編程實戰】-----線程基本概念 線程狀態圖 說明:線程共包括以下5種狀態。1. 新建狀態(New) : 線程對象被創建後,就進入了新建狀態。例如,Thre

Java-Java程序設計的基本概念

科學 獲取 img 32位 基本 含義 科學計數 而且 變量 2017-10-06 15:31:39 一、Java程序的基本構成 二、數據類型與標識符 數據類型 標識符 廣義的用於定義各種對象名稱的字符串集合稱為標識符,標識符一般分為用戶

java程序設計基本概念

pan 內部 創建 編譯期 內存 nbsp blog 區別 strong JVM (1)對於字符串:其對象的引用都是存儲在棧中的,如果是編譯期已經創建好(直接用雙引號定義的)的就存儲在常量池中,如果是運行期(new出來的)才能確定的就存儲在堆中。對於equals相等

java並發的基本概念和級別

結構 樂觀 live 執行 完成後 不成功 CP 被占用 如果 並發的概念: 並發(Concurrency)和並行(Parallelism) 並發偏重於多個任務交替執行,而多個任務之間有可能還是串行的。而並行是真正意義上的“同時執行”。嚴格意義上

java 多線程的基本概念

java 概念 操作 進程 多線程 數據 進行 發生 程序 進程: 進程是操作系統結構的基礎,是程序的一次運行,是一個程序及其數據在處理機上順序執行時所發生的活動,是程序在一個數據集合上運行的過程,它是系統進行資源分配和調度的一個單位 線程: 線程是程序執行的一

輕松學會Java高並發第一課-並發的基本概念

並行 運行 設計 多核處理器 區別 聯網 ava 行處理 互聯網 概念 並發:同時擁有兩個或者多個線程,如果程序在單核處理器上運行,多個線程將交替地換入或者換出內存,每個線程都處於執行過程中的某個狀態。如果運行在多核處理器上,此時,程序中的每個線程都將分配到一個處理器核上

Java新手入門的三十個基本概念

在我們學習Java的過程中,掌握其中的基本概念對我們的學習無論是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基礎,所以有必要對其中的基本概念做以歸納,以便大家在以後的學習過程中更好的理解java的精髓,在此我總結了30條基本的概念。  Java概述: 

java併發程式設計實戰】—–執行緒基本概念

轉自 http://cmsblogs.com/?p=1638 共享和可變 要編寫執行緒安全的程式碼,其核心在於對共享的和可變的狀態進行訪問。 “共享”就意味著變數可以被多個執行緒同時訪問。我們知道系統中的資源是有限的,不同的執行緒對資源都是具有著同等的使用權。有限、公平就意味著競爭

JAVA併發程式設計之基本概念

1、鎖是對物件訪問的時候,通過對物件加鎖,防止並行訪問的控制手段;對物件加鎖成功,代表我持有這個物件的監視器,解鎖,代表釋放了這個物件的監視器。 拿到物件的監視器,肯定是對物件加鎖成功的;對物件加鎖成功 ,程式可以主動Watiing或者Time_waiting在物件監視器上。 2、鎖與監