自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java數(shù)組一定要初始化才能使用嗎?

開發(fā) 后端
數(shù)組是大多數(shù)編程語言提供的一種復合結(jié)構(gòu),如果程序需要多個類型相同的變量時,就可以考慮定義一個數(shù)組。Java語言的數(shù)組變量是引用類型的變量,因此具有Java獨有的特性。

數(shù)組是大多數(shù)編程語言提供的一種復合結(jié)構(gòu),如果程序需要多個類型相同的變量時,就可以考慮定義一個數(shù)組。Java語言的數(shù)組變量是引用類型的變量,因此具有Java獨有的特性。

在正常的Java開發(fā)中,使用Java數(shù)組之前,我們都會對數(shù)組進行初始化,為數(shù)組中的元素分配內(nèi)存空間、賦值等,但Java數(shù)組一定要初始化嗎?不初始化可以 么?

其實,java的數(shù)組變量是引用類型的變量,并不是數(shù)組對象本身,只要讓數(shù)組變量指向有效的數(shù)組對象,程序中就可使用該數(shù)組變量,比如下面這個例子:

 

  1. public class T {  
  2.  
  3.   /** 
  4.  
  5.    * @param args 
  6.  
  7.    */  
  8.  
  9.   public static void main(String[] args) {  
  10.  
  11.     // TODO Auto-generated method stub  
  12.  
  13.     //定義并初始化nums數(shù)組  
  14.  
  15.     int nums[] = new int[]{3,13,4,6};  
  16.  
  17.     //定義一個prices數(shù)組變量  
  18.  
  19.     int prices[];  
  20.  
  21.     //讓prices數(shù)組指向nums所引用的數(shù)組  
  22.  
  23.     prices = nums;  
  24.  
  25.     for(int i=0;i<prices.length;i++){  
  26.  
  27.       System.out.println(prices[i]);  
  28.  
  29.     }  
  30.  
  31.     //將prices數(shù)組的第三個元素賦值為100  
  32.  
  33.     prices[2] = 100;  
  34.  
  35.     //訪問nums數(shù)組的第三個元素 將看到數(shù)組100  
  36.  
  37.     System.out.println(nums[2]);  
  38.  
  39.   }  
  40.  

從上面代碼可以看出,定義了prices數(shù)組之后,并未對prices數(shù)組進行初始化。 當執(zhí)行int prices[]之后,

程序的內(nèi)存分配如圖

從圖可以看出,此時的prices數(shù)組還未指向任何有效的內(nèi)存,未指向任何數(shù)組對象,此時的程序還不可使用prices數(shù)組變量。

當程序執(zhí)行prices = nums之后,prices變量將指向nums變量所引用的數(shù)組,此時prices變量和nums變量引用同一個數(shù)組對象。

執(zhí)行這條語句之后,prices變量已經(jīng)指向有效的內(nèi)存及一個長度為4的數(shù)組對象,因此程序完全可以正常使用prices變量了。

對于數(shù)組變量來說,它并不需要進行所謂的初始化,只要讓數(shù)組變量指向一個有效的數(shù)組對象,程序即可正常使用該數(shù)組變量。

所以,Java語言中的數(shù)組,不一定要初始化也可正常使用。Java初學者可以嘗試用上面這里例子的方法,實際操作一下,加深印象。***,希望小編的分享對大家有幫助。

責任編輯:王雪燕 來源: 博客園
相關(guān)推薦

2015-09-21 09:02:39

java數(shù)組

2015-09-21 09:39:35

Java數(shù)組初始化

2019-11-04 13:50:36

Java數(shù)組編程語言

2009-06-11 13:26:16

Java數(shù)組聲明創(chuàng)建

2009-09-08 09:48:34

LINQ初始化數(shù)組

2021-12-03 12:35:50

new[]delete[]語言

2009-08-28 11:24:48

C#一維數(shù)組初始化

2009-09-18 11:15:52

C#數(shù)組初始化

2021-03-29 22:58:34

大數(shù)據(jù)Java編程語言

2009-09-17 16:06:22

C#數(shù)組初始化

2009-11-18 17:53:18

PHP數(shù)組初始化

2011-07-07 15:13:42

PHP

2009-09-02 16:52:55

C#數(shù)組初始化

2009-09-17 16:17:41

C#參差數(shù)組初始化

2021-01-05 05:27:32

業(yè)務(wù)Leader團隊

2022-04-24 09:54:24

ProxyReflect前端

2023-11-12 23:08:17

C++初始化

2017-10-16 12:52:51

2020-06-19 15:49:52

Windows微軟關(guān)機

2010-11-19 16:02:42

IT族
點贊
收藏

51CTO技術(shù)棧公眾號