數組初始化的兩種方式:
靜態初始化:初始化時由程序眼顯式指定每個數組元素的初始值,由系統決定需要的數組長度。
//定義一個int數組類型的變量,變量名爲intArr。
1:int [ ] Arr =new int[ ]{5,6,2,3,4};
2:Object[ ] object;
object=new object[ ]{"java","李剛"};
3.定義和初始化同時完成
int [ ] a={5,6,7,4,9};
java 中數組必須先初始化才能用,先在內存中分配空間並由系統自動分配初始值,或有程序員手動指定初始化。
動態初始化:程序員指定數組的長度,由系統指定數組的長度。
1:數組的定義和初始化同時完成,使用動態初始化語法
int [ ] arr=new int[5];
2.object [ ] arr=new String[4];
數組的查詢和賦值:
system.out.println(object[2]);
object[3]="spring";
使用增強for循環遍歷數組:
public class Array {
public static void main(String[] args) {
String[] arr={"孫悟空","豬八戒","沙和尚"};
//使用增強for循環 遍歷數組(無需數組索引和數組長度)
for(String arr1:arr){
//arr1="唐僧";//雖然沒有語法錯誤,但是不要爲arr1指定值 否則會出現遍歷錯誤
System.out.println(arr1);
}
}
}
內存中的數組:
數組引用變量只是一個引用,這個引用變量可以指向任何有效的內存,只有當該引用指向有效內存後,纔可通過該數組變量來訪問數組元素。 與所有引用變量相同的是,引用變量是訪問真實對象的根本方式。也就是說,如果我們希望在程序中訪問數組,則只能通過這個數組的引用變量來訪問它。 實際的數組元素被存儲在堆(heap)內存中;數組引用變量是一個引用類型的變量,被存儲在棧(stack)內存中。數組在內存中的存儲示意圖如圖4.2所示: 如果需要訪問圖4.2中堆內存中的數組元素,程序中只能通過p[index]的形式實現。也就是說,數組引用變量是訪問堆內存中數組元素的唯一方式。
import java.util.Arrays;
/**
* 把四位數轉成漢字字符串
* 先截再轉
* @author Administrator
*
*/
public class Num2Rmb {
private String[] hanArr={"壹","貳","叄","肆","伍","陸","柒","捌","玖","拾"};
private String[] unitArr={"拾","佰","千"};
/**
* 把一個浮點數分解成整數和小數部分字符串
* num 需要被分解的浮點數
* return分解出來的整數部分和小樹部分.
*/
private String[] divide(double num){
//把double類型變成整數類型
long zheng=(long)num;
//取小數
long xiao=Math.round((num-zheng)*100);
//返回整數和小樹部分
return new String[]{zheng+"",String.valueOf(xiao)};
}
/**
* 轉成漢字字符串
* @param numStr
* @return
*/
private String toHanStr(String numStr){
String result="";
int numLen=numStr.length();
for(int i=0;i<numLen;i++){
int num=numStr.charAt(i)-48;
if(i!=numLen-1&&num!=0){
result+=hanArr[num]+unitArr[num-2-i];
}else{
result +=hanArr[num];
}
}
return result;
}
public static void main(String[] args){
Num2Rmb nr=new Num2Rmb();
//測試把一個浮點數分解成整數部分和小樹部分
System.out.println(Arrays.toString(nr.divide(236711123.123)));
//測試把一個四位的數字字符串變成漢子字符串
System.out.println(nr.toHanStr("6319"));
}
}