久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > java數(shù)組的初始化介紹

java數(shù)組的初始化介紹

來源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2023-03-22 17:52:00 1679478720

  在Java中,數(shù)組必須先初始化,然后才可以使用。所謂的初始化,就是為數(shù)組中的數(shù)組元素分配內(nèi)存空間,并為每個(gè)數(shù)組元素賦初始值。

  Java的數(shù)組初始化有兩種基本方式:動(dòng)態(tài)初始化與靜態(tài)初始化。我們?cè)诔跏蓟瘮?shù)組時(shí),不要靜態(tài)初始化和動(dòng)態(tài)初始化同時(shí)使用。也就是說,不要在進(jìn)行數(shù)組初始化時(shí),既指定數(shù)組的長(zhǎng)度,又為每個(gè)數(shù)組元素分配初始值。接下來壹哥分別利用這兩種方式,給大家講解數(shù)組的創(chuàng)建和初始化。

  動(dòng)態(tài)初始化

  動(dòng)態(tài)初始化,是指程序員只指定數(shù)組長(zhǎng)度,由系統(tǒng)為數(shù)組元素分配初始值。

  1.1 基本語法

  數(shù)組在進(jìn)行動(dòng)態(tài)初始化時(shí)有兩種寫法,大家可以根據(jù)自己的編程習(xí)慣進(jìn)行選擇,沒有孰優(yōu)孰劣。

  ●寫法1: 數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[長(zhǎng)度];

  ●寫法2: 數(shù)據(jù)類型 數(shù)組名[] = new 數(shù)據(jù)類型[長(zhǎng)度];

  1.2 案例代碼

  public class Demo01 {

  public static void main(String[] args) {

  //數(shù)組的動(dòng)態(tài)初始化

  //寫法1: new用于創(chuàng)建一個(gè)對(duì)象

  int[] arr = new int[3];

  //寫法2

  //int arr[] = new int[3];

  //存儲(chǔ)數(shù)據(jù)

  arr[0] = 11;

  arr[1] = 22;

  arr[2] = 33;

  //取數(shù)據(jù),數(shù)組的下標(biāo)從0開始

  System.out.println("第一個(gè)元素為:"+arr[0]);

  System.out.println("第二個(gè)元素為:"+arr[1]);

  System.out.println("第三個(gè)元素為:"+arr[2]);

  //獲取數(shù)據(jù)的長(zhǎng)度

  System.out.println("數(shù)組長(zhǎng)度="+arr.length);

  //錯(cuò)誤:數(shù)組下標(biāo)越界

  //System.out.println(arr[3]);

  }

  }

  在上述代碼中,new是Java中的關(guān)鍵字,用來創(chuàng)建對(duì)象,我們以后會(huì)詳細(xì)學(xué)習(xí)。

  其中new int[3];中的3,表示這個(gè)數(shù)組的初始長(zhǎng)度是3,只能存放3個(gè)數(shù)據(jù)。我們?cè)诼暶鲿r(shí)在方括號(hào)中直接輸入數(shù)組的長(zhǎng)度,這種方式就叫做動(dòng)態(tài)初始化。數(shù)組的長(zhǎng)度一旦確定后,就不會(huì)再發(fā)生改變。內(nèi)部的數(shù)據(jù)元素可以通過索引進(jìn)行添加,arr[]數(shù)組中的數(shù)字就叫做索引。

  另外大家還注意,在Java中數(shù)組的下標(biāo)是從0開始的。所以在一個(gè)長(zhǎng)度為3的數(shù)組中,最后一個(gè)元素的下標(biāo)為2,則取值時(shí)的格式是arr[2],而不應(yīng)該是arr[3]。否則會(huì)產(chǎn)生數(shù)組下標(biāo)越界異常”ArrayIndexOutOfBoundsException:: Index 3 out of bounds for length 3“,如下圖所示:

  靜態(tài)初始化

  靜態(tài)初始化,就是由程序員指定每個(gè)數(shù)組元素的初始值,由系統(tǒng)計(jì)算出數(shù)組的長(zhǎng)度。

  2.1 基本語法

  數(shù)組在進(jìn)行靜態(tài)初始化時(shí)有三種寫法,大家可以根據(jù)自己的編程習(xí)慣進(jìn)行選擇,同樣沒有孰優(yōu)孰劣。簡(jiǎn)寫的靜態(tài)初始化,只能在一條語句完成,不能分割成兩條語句。

  ●寫法1:數(shù)據(jù)類型[] 數(shù)組名 = {數(shù)據(jù)1,數(shù)據(jù)2,...};

  ●寫法2:數(shù)據(jù)類型 數(shù)組名[] = {數(shù)據(jù)1,數(shù)據(jù)2,...};

  ●寫法3:數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[]{數(shù)據(jù)1,數(shù)據(jù)2,...};

  2.2 案例代碼

  public class Demo02 {

  public static void main(String[] args) {

  //數(shù)組的靜態(tài)初始化

  //寫法1

  //引用類型的數(shù)組。聲明數(shù)組后直接添加一個(gè)花括號(hào){},并在花括號(hào)中添加數(shù)據(jù),就是靜態(tài)初始化

  String[] names = {"張三","李四","王五","一一哥"};

  //寫法2:

  //String names[] = {"張三","李四","王五","一一哥"};

  //寫法3:

  //String names[] = new String[]{"張三","李四","王五","一一哥"};

  // [Ljava.lang.String;@15db9742 內(nèi)存地址

  // System.out.println(names);

  //操作數(shù)組

  //存數(shù)據(jù),新數(shù)據(jù)存入到原有的位置

  names[0] = "yyg";

  names[1] = "尼古拉斯";

  //取數(shù)據(jù)

  System.out.println("第二個(gè)元素:"+names[1]);

  System.out.println("第四個(gè)元素:"+names[3]);

  //獲取數(shù)組的長(zhǎng)度

  System.out.println("數(shù)組的長(zhǎng)度:"+names.length);

  }

  }

  在上述代碼中,在聲明完數(shù)組后,直接添加一個(gè)花括號(hào){},并在花括號(hào)中添加數(shù)據(jù),這種方式就叫做靜態(tài)初始化。

  對(duì)于初始化問題,有這樣的一個(gè)問題哈!大家可以看看:

  java中為什么數(shù)組靜態(tài)初始化可以省略new而動(dòng)態(tài)初始化不行?

  其實(shí)在Java中,數(shù)組的初始化有兩種方式:靜態(tài)初始化和動(dòng)態(tài)初始化。

  靜態(tài)初始化是指在定義數(shù)組的同時(shí)為數(shù)組元素指定初始值,可以省略new操作符。例如:

  int[] arr1 = {1, 2, 3};

  動(dòng)態(tài)初始化是指在定義數(shù)組后,通過new操作符為數(shù)組元素分配空間,并指定初始值。例如:

  int[] arr2 = new int[3];

  arr2[0] = 1;

  arr2[1] = 2;

  arr2[2] = 3;

  數(shù)組靜態(tài)初始化可以省略new操作符的原因是編譯器可以根據(jù)初始化的元素?cái)?shù)量自動(dòng)確定數(shù)組的長(zhǎng)度,并分配相應(yīng)的內(nèi)存空間。而動(dòng)態(tài)初始化必須顯式指定數(shù)組長(zhǎng)度,因?yàn)榫幾g器無法根據(jù)賦值語句推斷數(shù)組的長(zhǎng)度。

  因此,對(duì)于動(dòng)態(tài)初始化,必須先使用new操作符為數(shù)組分配內(nèi)存空間,然后再為數(shù)組元素賦值。現(xiàn)在大家明白了嗎?

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python字符串截???

在Python中,字符串是一種非常常見的數(shù)據(jù)類型,它可以用來表示文本、數(shù)字、符號(hào)等內(nèi)容。在實(shí)際應(yīng)用中,我們經(jīng)常需要對(duì)字符串進(jìn)行截取,以便獲取...詳情>>

2023-11-02 17:56:27
Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實(shí)現(xiàn)?

隨著互聯(lián)網(wǎng)的發(fā)展,聊天室應(yīng)用成為人們?nèi)粘I钪惺殖R姷囊环N社交方式。Python語言的Socket模塊是實(shí)現(xiàn)網(wǎng)絡(luò)通信的重要工具,可以輕松地實(shí)現(xiàn)C/...詳情>>

2023-11-02 17:53:38
用while求1到100的奇數(shù)和?

在計(jì)算機(jī)編程中,循環(huán)語句是非常重要的一部分。而while語句是其中最基本也是最常用的一種。它的作用是在滿足一定條件的情況下,重復(fù)執(zhí)行一段代...詳情>>

2023-11-02 17:50:57
python創(chuàng)建一個(gè)集合?

在Python中,集合是一種無序且不重復(fù)的數(shù)據(jù)類型,可以用于存儲(chǔ)一組元素。創(chuàng)建一個(gè)集合非常簡(jiǎn)單,只需要使用大括號(hào){}或者set()函數(shù)即可。使用大...詳情>>

2023-11-02 17:34:02
linux改文件屬主命令?

Linux文件相關(guān)命令1、命令一:cat cat命令應(yīng)該是在Linux中查看文件內(nèi)容最常見的命令了。使用cat命令會(huì)打印指定文件的所有內(nèi)容到標(biāo)準(zhǔn)輸出上,比...詳情>>

2023-10-31 19:58:15