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

Java數(shù)組的動態(tài)初始化和常見問題解析

 更新時間:2024年10月21日 11:26:47   作者:洛上言  
本文介紹了數(shù)組動態(tài)初始化的概念,即在初始化時僅指定數(shù)組長度,系統(tǒng)會為數(shù)組分配初始值,而靜態(tài)初始化則手動指定數(shù)組元素,系統(tǒng)根據(jù)元素個數(shù)計算數(shù)組長度,這兩種初始化方式應(yīng)用場景不同,另外,還講述了數(shù)組默認(rèn)初始化值的規(guī)律及數(shù)組常見問題,如越界問題等

一、為什么有數(shù)組動態(tài)初始化呢?

如果一開始就知道數(shù)組里的數(shù)據(jù),就可以使用靜態(tài)初始化去完成。

但是如果一開始就不知道要添加什么數(shù)據(jù),那此時大括號中寫什么呢?

int[] arr = {1, 2, 3, 4, 5};
int[] arr = {????}

是不是感覺寫什么都不太合適。所以動態(tài)初始化和靜態(tài)初始化的應(yīng)用場景是不一樣的。

二、動態(tài)初始化

動態(tài)初始化:初始化時只指定數(shù)組長度,由系統(tǒng)為數(shù)組分配初始值。

格式:

數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[數(shù)組長度];

示例:

下述代碼表示arr數(shù)組里只能存3個int類型的整數(shù)。

int[] arr = new int[3];

三、代碼示例

需求:

定義一個數(shù)組,用來存班級中50個學(xué)生的姓名。

姓名未知,等學(xué)生報道之后,再進(jìn)行添加。

package com.itheima.arraydemo;

public class ArrayDemo4 {
    public static void main(String[] args) {
        //格式:
        //數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[數(shù)組的長度];
        //在創(chuàng)建的時候,由我們自己指定數(shù)組的長度,由虛擬機(jī)給出默認(rèn)的初始化值

        String[] arr = new String[50];
        //添加學(xué)生
        arr[0] = "zhangsan";
        arr[1] = "lisi";
        //獲取
        System.out.println(arr[0]);//zhangsan
        System.out.println(arr[1]);//lisi
        System.out.println(arr[2]);//打印出來的是默認(rèn)初始化值null
    }
}

四、數(shù)組默認(rèn)初始化值的規(guī)律

  • 整數(shù)類型:默認(rèn)初始化值0
  • 小數(shù)類型:默認(rèn)初始化值0.0
  • 字符類型:默認(rèn)初始化值’\u0000’ 空格
  • 布爾類型:默認(rèn)初始化值 false
  • 引用數(shù)據(jù)類型:默認(rèn)初始化值 null,String就是一個引用數(shù)據(jù)類型
int[] arr2 = new int[3];
System.out.println(arr2[0]);//0
System.out.println(arr2[1]);//0
System.out.println(arr2[2]);//0

五、數(shù)組動態(tài)初始化和靜態(tài)初始化的區(qū)別

1、動態(tài)初始化:手動指定數(shù)組長度,由系統(tǒng)給出默認(rèn)初始化值。

只明確元素個數(shù),不明確具體數(shù)值,推薦使用動態(tài)初始化

例如:使用數(shù)組容器來存儲鍵盤錄入的5個整數(shù)。

int[] arr = {????}; // 不明確數(shù)組中應(yīng)該存儲哪些
int[] arr = new int[5]; // 就使用動態(tài)初始化

2、靜態(tài)初始化:手動指定數(shù)組元素,系統(tǒng)會根據(jù)元素個數(shù),計算出數(shù)組的長度。

需求中已經(jīng)明確了要操作的具體數(shù)據(jù),直接靜態(tài)初始化即可。

例如:將全班的學(xué)生成績存入數(shù)組中:11,22 ,33

int[] arr = {11, 22, 33};

六、數(shù)組常見問題:越界

當(dāng)訪問了數(shù)組中不存在的索引,就會引發(fā)索引越界異常

package com.itheima.arraydemo;

public class ArrayDemo5 {
    public static void main(String[] args) {
        //1.定義一個數(shù)組
        int[] arr = {1,2,3,4,5};
        //長度:5
        //最小索引:0
        //最大索引:4(數(shù)組的長度 - 1)
        //如果訪問的數(shù)字不在這個范圍(0 ~ 4)就會報索引越界異常
        System.out.println(arr[2]);


        //小結(jié):
        //索引越界異常
        //原因:訪問了不存在的索引
        //避免:只要知道索引的范圍就行了
        //最小索引:0
        //最大索引:(數(shù)組的長度 - 1)
    }
}

下圖的紅色就表示代碼出現(xiàn)了問題,通常我們也會說代碼報錯了。

閱讀報錯的信息:Exception:異常,異常在main里。java.lang.ArrayIndexOutOfBoundsException 是異常的名字,叫做:索引越界異常。后面就會緊接著異常出現(xiàn)的解釋:

Index 10 out of bounds for length 5

索引10已經(jīng)超過了長度為5的數(shù)組。

at:表示 。com.itheima.arraydemo 是包名,ArrayDemo5 是類名。

main 是方法名。ArrayDemo5.java:10 表示異常出現(xiàn)的位置,這里就表示在第10行出現(xiàn)了問題。

點一下,它就會自動跳轉(zhuǎn)到第10行。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot防止消息重復(fù)消費的方法步驟

    SpringBoot防止消息重復(fù)消費的方法步驟

    這段文章詳細(xì)介紹了消息隊列中消息重復(fù)消費的問題及解決方案,重點講解了Redis唯一ID防重、數(shù)據(jù)庫唯一索引防重、業(yè)務(wù)狀態(tài)機(jī)防重和全局唯一約束防重四種方案,適合不同業(yè)務(wù)場景和并發(fā)量的需求,需要的朋友可以參考下
    2026-05-05
  • java操作mongodb實現(xiàn)CURD功能實例

    java操作mongodb實現(xiàn)CURD功能實例

    mongodb支持多種語言,并且提供了多種語言的驅(qū)動,本文使用java操作mongodb實現(xiàn)CURD功能,大家參考使用吧
    2013-12-12
  • jar運行報錯no main manifest attribute原因分析及解決

    jar運行報錯no main manifest attribute原因分析及解決

    文章主要討論了在使用`java -jar`命令運行jar包時遇到的“nomainmanifestattribute”錯誤,并提供了可能的解決方案,包括檢查pom.xml配置,添加打包插件配置,以及使用IDEA進(jìn)行打包等方法
    2026-04-04
  • MyBatis中#{}?和?${}?的區(qū)別和動態(tài)?SQL詳解

    MyBatis中#{}?和?${}?的區(qū)別和動態(tài)?SQL詳解

    這篇文章主要介紹了MyBatis中#{}和${}的區(qū)別,包括參數(shù)傳遞、安全性、性能等方面,然后詳細(xì)介紹了如何使用#{}和${}進(jìn)行排序、模糊查詢、動態(tài)SQL、數(shù)據(jù)庫連接池等操作,最后,總結(jié)了注解方式的動態(tài)SQL,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Spring Cloud之配置中心的搭建

    Spring Cloud之配置中心的搭建

    這篇文章主要介紹了Spring Cloud之配置中心的搭建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 提升網(wǎng)絡(luò)請求穩(wěn)定性HttpClient的重試機(jī)制深入理解

    提升網(wǎng)絡(luò)請求穩(wěn)定性HttpClient的重試機(jī)制深入理解

    這篇文章主要為大家介紹了提升網(wǎng)絡(luò)請求穩(wěn)定性HttpClient的重試機(jī)制深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • SpringBoot使用validation-api實現(xiàn)對枚舉類參數(shù)校驗的方法

    SpringBoot使用validation-api實現(xiàn)對枚舉類參數(shù)校驗的方法

    這篇文章主要介紹了SpringBoot使用validation-api實現(xiàn)對枚舉類參數(shù)校驗,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 基于SpringBoot和MySQL實現(xiàn)圖片CRUD的三種解決方案

    基于SpringBoot和MySQL實現(xiàn)圖片CRUD的三種解決方案

    在基于 Spring Boot 和 MySQL 開發(fā)的后端程序中,處理圖片的增刪改查(CRUD)通常涉及到兩個核心部分:存儲圖片路徑信息到數(shù)據(jù)庫和實際文件操作(上傳、刪除等),以下是幾種常見的解決方案,分別詳細(xì)說明其使用方法,并對比優(yōu)缺點,需要的朋友可以參考下
    2025-08-08
  • java程序中指定某個瀏覽器打開的實現(xiàn)方法

    java程序中指定某個瀏覽器打開的實現(xiàn)方法

    最近工作中遇到一個需求,是要利用java打開指定瀏覽器,整理后發(fā)現(xiàn)有四種解決的方法,所以想著分享出來,下面這篇文章主要給大家介紹了java程序中指定某個瀏覽器打開的實現(xiàn)方法,,需要的朋友可以參考下。
    2017-03-03
  • 實例講解MyBatis如何防止SQL注入

    實例講解MyBatis如何防止SQL注入

    這篇文章通過實例代碼介紹MyBatis如何防止SQL注入,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12

最新評論

三明市| 江口县| 甘泉县| 洱源县| 调兵山市| 阳信县| 唐河县| 柳江县| 正宁县| 荔波县| 崇州市| 东至县| 德格县| 宜兰县| 阜阳市| 萍乡市| 雅安市| 高阳县| 抚州市| 礼泉县| 定西市| 西充县| 柞水县| 阿拉善左旗| 屯门区| 崇义县| 旌德县| 呼玛县| 东台市| 宝丰县| 敦化市| 福建省| 泰安市| 宜城市| 遂昌县| 万盛区| 册亨县| 舟山市| 桓仁| 聂拉木县| 龙江县|