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、鎖與監