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

Java 數(shù)組創(chuàng)建與使用詳解

 更新時間:2025年11月10日 11:29:11   作者:Geoking.  
本文介紹了Java數(shù)組的基本概念、聲明與創(chuàng)建、初始化方式、訪問元素、長度屬性、遍歷方法以及二維數(shù)組和不規(guī)則數(shù)組的使用,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

一、什么是數(shù)組

數(shù)組(Array)是 Java 中最基本的數(shù)據(jù)結(jié)構(gòu)之一。
它用于在內(nèi)存中存儲一組相同類型的元素,并可以通過索引(index)快速訪問。

無論是學(xué)生成績表、商品價格列表,還是二維矩陣計算,數(shù)組都是不可或缺的基礎(chǔ)知識。

在 Java 中,數(shù)組是一種容器對象,用于存儲 固定數(shù)量 的同類型值。
數(shù)組的長度一旦定義,就 不能改變。

特點:

  • 數(shù)組中的元素類型 相同;
  • 數(shù)組的 長度固定
  • 通過 索引(從 0 開始) 訪問;
  • 數(shù)組本質(zhì)上是一個 對象(在堆內(nèi)存中創(chuàng)建)。

二、數(shù)組的聲明與創(chuàng)建

數(shù)組的聲明和創(chuàng)建分為兩步:

聲明數(shù)組

int[] numbers;   // 推薦寫法
// 或
int numbers[];   // 兼容寫法(不推薦)

這里僅聲明了變量 numbers,并未真正分配內(nèi)存。

創(chuàng)建數(shù)組對象

使用 new 關(guān)鍵字分配內(nèi)存:

numbers = new int[5];  // 創(chuàng)建一個長度為5的int數(shù)組

現(xiàn)在數(shù)組的每個元素都有默認值。

聲明和創(chuàng)建可合并為一行

int[] numbers = new int[5];

內(nèi)存模型理解

當你執(zhí)行:

int[] arr = new int[3];

內(nèi)存中會發(fā)生以下事情:

區(qū)域內(nèi)容
棧內(nèi)存保存變量 arr(引用地址)
堆內(nèi)存存放數(shù)組對象 [0, 0, 0]

Java 數(shù)組是 引用類型,實際數(shù)據(jù)存儲在堆中。

Java 數(shù)組是對象,所有數(shù)組都在堆中創(chuàng)建,棧中僅存引用。

三、數(shù)組初始化方式

Java 提供了三種常見的初始化方式:

默認初始化

當數(shù)組被 new 創(chuàng)建時,系統(tǒng)會自動為元素賦默認值。

int[] nums = new int[3];
System.out.println(nums[0]);  // 輸出 0
數(shù)據(jù)類型默認值
byte / short / int / long0
float / double0.0
char‘\u0000’
booleanfalse
引用類型null

靜態(tài)初始化(直接賦值)

直接在定義時指定初始值:

int[] scores = {90, 85, 100, 70};
String[] names = {"Alice", "Bob", "Charlie"};

編譯器會自動推斷數(shù)組長度。

? 語法糖寫法,最常用!

動態(tài)初始化(先創(chuàng)建后賦值)

int[] ages = new int[3];
ages[0] = 18;
ages[1] = 20;
ages[2] = 22;

適合需要運行時賦值的場景。

四、訪問數(shù)組元素

數(shù)組索引從 0 開始,到 length-1 結(jié)束:

int[] arr = {10, 20, 30};
System.out.println(arr[0]);  // 輸出 10
System.out.println(arr[2]);  // 輸出 30

?? 注意數(shù)組越界(ArrayIndexOutOfBoundsException)

int[] arr = new int[3];
arr[3] = 100;  // ? 錯誤:最大索引是 2

五、數(shù)組的長度屬性

每個數(shù)組都有一個內(nèi)置屬性 .length

int[] data = {1, 2, 3, 4};
System.out.println(data.length); // 輸出 4

注意:length屬性,不是方法(沒有括號!)

六、遍歷數(shù)組的方式

1. 傳統(tǒng) for 循環(huán)

int[] nums = {10, 20, 30, 40};
for (int i = 0; i < nums.length; i++) {
    System.out.println("索引 " + i + " 的值是 " + nums[i]);
}

2. 增強型 for 循環(huán)(for-each)

for (int num : nums) {
    System.out.println(num);
}

for-each 循環(huán)更簡潔,但無法訪問索引值。

七、二維數(shù)組(多維數(shù)組)

Java 支持多維數(shù)組,最常用的是 二維數(shù)組。

聲明與創(chuàng)建

int[][] matrix = new int[2][3];  // 2行3列

結(jié)構(gòu)示意:

索引元素內(nèi)容
[0][0] ~ [0][2]第一行
[1][0] ~ [1][2]第二行

靜態(tài)初始化

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6}
};

訪問方式:

System.out.println(matrix[0][2]); // 輸出 3

遍歷二維數(shù)組

for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix[i].length; j++) {
        System.out.print(matrix[i][j] + " ");
    }
    System.out.println();
}

輸出:

1 2 3
4 5 6

八、不規(guī)則數(shù)組(Jagged Array)

Java 支持“鋸齒狀”二維數(shù)組——每一行可以長度不同:

int[][] jagged = new int[3][];
jagged[0] = new int[2];
jagged[1] = new int[4];
jagged[2] = new int[1];

九、數(shù)組的常見操作示例

import java.util.Arrays;
public class ArrayDemo {
    public static void main(String[] args) {
        int[] nums = {5, 2, 9, 1};
        Arrays.sort(nums);              // 排序
        System.out.println(Arrays.toString(nums)); // 輸出 [1, 2, 5, 9]
        int index = Arrays.binarySearch(nums, 5);  // 二分查找
        System.out.println("5 的索引是:" + index);
        int[] copy = Arrays.copyOf(nums, nums.length); // 復(fù)制數(shù)組
        System.out.println(Arrays.equals(nums, copy)); // true
    }
}

十、常見錯誤與陷阱

錯誤說明示例
數(shù)組越界索引超出范圍arr[10] = 5;
未初始化未分配內(nèi)存int[] a; a[0] = 1;
空指針異常數(shù)組變量為 nullint[] b = null; b[0] = 1;
混淆長度.length 是屬性arr.length() ?

到此這篇關(guān)于Java 數(shù)組創(chuàng)建與使用詳解的文章就介紹到這了,更多相關(guān)java數(shù)組使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot實現(xiàn)列表數(shù)據(jù)導(dǎo)出為Excel文件

    SpringBoot實現(xiàn)列表數(shù)據(jù)導(dǎo)出為Excel文件

    這篇文章主要為大家詳細介紹了在Spring?Boot框架中如何將列表數(shù)據(jù)導(dǎo)出為Excel文件,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2024-02-02
  • MyBatis-Plus輸出完整SQL(帶參數(shù))的三種方案

    MyBatis-Plus輸出完整SQL(帶參數(shù))的三種方案

    當我們使用 mybatis-plus 時,可能會遇到SQL 不能直接執(zhí)行,調(diào)試也不方便的情況,那么,如何打印完整 SQL(帶參數(shù))呢?本篇文章將介紹 3 種實現(xiàn)方式,并對比它們的優(yōu)缺點,需要的朋友可以參考下
    2025-02-02
  • 23種設(shè)計模式(3) java原型模式

    23種設(shè)計模式(3) java原型模式

    這篇文章主要為大家詳細介紹了23種設(shè)計模式之java原型模式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • RabbitMQ死信機制實現(xiàn)延遲隊列的實戰(zhàn)

    RabbitMQ死信機制實現(xiàn)延遲隊列的實戰(zhàn)

    本文主要介紹了RabbitMQ死信機制實現(xiàn)延遲隊列的實戰(zhàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java實現(xiàn)byte[]轉(zhuǎn)List的示例代碼

    Java實現(xiàn)byte[]轉(zhuǎn)List的示例代碼

    byte,即字節(jié),由8位的二進制組成。在Java中,byte類型的數(shù)據(jù)是8位帶符號的二進制數(shù)。List?是一個接口,它繼承于Collection的接口。它代表著有序的隊列。本文將介紹如何通過java實現(xiàn)byte[]轉(zhuǎn)List,需要的可以參考一下
    2022-01-01
  • SpringBoot的監(jiān)控及使用詳解

    SpringBoot的監(jiān)控及使用詳解

    這篇文章主要介紹了SpringBoot的監(jiān)控及使用詳解,Spring Boot提供了一系列的監(jiān)控功能,方便開發(fā)人員對應(yīng)用程序進行監(jiān)控和管理,本文將討論 Spring Boot中的監(jiān)控功能及其使用方法,需要的朋友可以參考下
    2023-07-07
  • Java線程同步Lock同步鎖代碼示例

    Java線程同步Lock同步鎖代碼示例

    這篇文章主要介紹了Java線程同步Lock同步鎖代碼示例,首先介紹了Java線程同步的原理,然后對lock同步鎖作了簡要闡述,分享了代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java中~運算符的含義及說明

    Java中~運算符的含義及說明

    Java中的~運算符表示非運算符,即將該數(shù)的所有二進制位全取反,但得到的是補碼形式,需要將其轉(zhuǎn)換為反碼和原碼才能得到最終的十進制結(jié)果
    2025-11-11
  • spring緩存cache的使用詳解

    spring緩存cache的使用詳解

    這篇文章主要介紹了spring緩存cache的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java程序包不存在的3種解決方法總結(jié)

    Java程序包不存在的3種解決方法總結(jié)

    包存在的,但是啟動項目的時候提示包不存在,所以解決下,這篇文章主要給大家介紹了關(guān)于Java程序包不存在的3種解決方法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-01-01

最新評論

宁强县| 华阴市| 德州市| 芷江| 锦州市| 武乡县| 宁明县| 玉环县| 明星| 松滋市| 托里县| 长汀县| 定西市| 兰西县| 湘潭市| 大田县| 依安县| 岱山县| 卫辉市| 肇庆市| 衡南县| 兴隆县| 潜江市| 阿拉善盟| 通化市| 广宗县| 宿迁市| 泰顺县| 柳州市| 襄樊市| 九台市| 启东市| 时尚| 神木县| 通许县| 罗田县| 堆龙德庆县| 花莲市| 靖州| 汤原县| 大埔县|