從頭認識java-4.8 數組的初始化(1)

來源:互聯網
上載者:User

從頭認識java-4.8 數組的初始化(1)

這一章節我們來討論一下數組的初始化。

1.數組是一個對象。

 

package com.ray.ch01;public class Test {public static void main(String[] args) {int[] a = {};System.out.println(a instanceof Object);}}

輸出:

 

true

 

2.把數組賦值給變數,其實是把數組的引用賦值給變數。

 

package com.ray.ch04;import java.util.Arrays;public class Test {public static void main(String[] args) {int[] a1 = { 1, 2, 3, 4, 5 };int[] a2;a2 = a1;System.out.println(a2.equals(a1));for (int i = 0; i < a2.length; i++) {a2[i] += 1;}System.out.println(Arrays.toString(a1));}}

輸出:

 

true
[2, 3, 4, 5, 6]

從上面的結果可以看見,a1、a2指向同一個對象,當改變a2時,a1也同時改變。

 

數組不單可以放基礎類型,還可以放對象。

 

package com.ray.ch04;public class Test {public static void main(String[] args) {Integer[] a = { new Integer(1), new Integer(2) };}}


 

 

3.讀取長度超過數組長度時,拋異常

改動一下上面的代碼

 

package com.ray.ch04;import java.util.Arrays;public class Test {public static void main(String[] args) {int[] a1 = { 1, 2, 3, 4, 5 };int[] a2;a2 = a1;System.out.println(a2.equals(a1));for (int i = 0; i <= a2.length; i++) {//改動這裡,多了一個=號a2[i] += 1;}System.out.println(Arrays.toString(a1));}}

輸出:

 

true
Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 5
at com.ray.ch04.Test.main(Test.java:12)

 

4.除了上面顯性賦值之外,我們還可以使用new來建立數組,但是必須寫清楚數組的長度

 

package com.ray.ch04;public class Test {public static void main(String[] args) {int[] a2 = new int[5];//必須寫清楚長度}}

這裡有可能會有疑問,為什麼int也可以使用new,因為它後面加上了“[]”,它代表的不是基礎類型的int,而是代表一個放置int類型的數組,數組是對象,所以可以使用new

 

 

5.賦值

如果是基礎類型,會直接把資料發放到數組裡面,如果是類,則會把引用放到數組裡面。

基礎類型:

 

package com.ray.ch04;import java.util.Arrays;import java.util.Random;public class Test {public static void main(String[] args) {int[] a2 = new int[5];Random random = new Random(50);for (int i = 0; i < a2.length; i++) {a2[i] = random.nextInt();}System.out.println(Arrays.toString(a2));}}

輸出:

 

[-1160871061, -1727040520, -1657178909, -765924271, -1625295794]

 

對象:

 

package com.ray.ch04;import java.util.Arrays;public class Test {public static void main(String[] args) {Book[] a2 = new Book[5];for (int i = 0; i < a2.length; i++) {a2[i] = new Book();}System.out.println(Arrays.toString(a2));}}class Book {}

 

 

輸出:

[com.ray.ch04.Book@61de33, com.ray.ch04.Book@14318bb, com.ray.ch04.Book@ca0b6, com.ray.ch04.Book@10b30a7, com.ray.ch04.Book@1a758cb]


總結:這一章節簡單討論了數組的幾個注意點。

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.