Ⅰ 數組名的地址 java
/* a 的 地址為:[I@a90653 b的 地址為:[I@de6ced */ 這個並不是亂碼啊
Ⅱ java中的數組存在哪
數組在堆內存。引用是在棧。
因為數組是一個引用類型。所以傳遞進去的是它們的引用,故在方法中互換了它們的值,也必然影響到它們原來的值.
Ⅲ Java輸出對象的數組是地址,如何輸出其值
可以重寫Student類中的toString()方法,以下例子僅作為參考:
classStudent
{
//該類的實例變數
publicStringno;
publicStringname;
publicStringsex;
publicintyuwen;
publicintshuxue;
publicintyingyu;
publicintlizong;
//創建構造器
publicStudent(Stringno,Stringname,Stringsex,intyuwen,intshuxue,intyingyu,intlizong){
this.no=no;
this.name=name;
this.sex=sex;
this.yuwen=yuwen;
this.shuxue=shuxue;
this.yingyu=yingyu;
this.lizong=lizong;
}
//重寫toString()方法,該方法輸出對象
publicStringtoString(){
return"Student[no:"+no+",name:"+name+",sex:"+sex+",yuwen:"+yuwen+",shuxue:"+shuxue+",yingyu:"+yingyu+",lizong:"+lizong+"]";
}
}
publicclassStudent1
{
publicstaticvoidmain(String[]args)
{
Studentstu1=newStudent("001","Zhang","男",65,70,53,80);
Studentstu2=newStudent("002","Cheng","女",75,75,85,78);
Studentstu3=newStudent("003","Li","女",68,45,95,72);
Studentstu4=newStudent("004","Cha","男",67,70,64,62);
Studentstu5=newStudent("005","Xun","男",65,90,78,85);
Student[]st={stu1,stu2,stu3,stu4,stu5};
for(Studentc:st){
System.out.println(c);
}
}
}
Ⅳ JAVA中的二維數組地址的疑問
這兩個本來就不一樣,不是一個東西,地址肯定不一樣。
首先,arr是一個Object(對象),所以它會有一個獨立的內存地址
arr[0]是一個數組,這個數組也是一個Object(對象),所以它也會有一個獨立的內存地址。
所謂二維數組,就是一個一維數組,然後在這個一維數組中,每個元素又是一個數組,一個數組是一個Object,所以,每個元素存放的實際上是它對應Object的內存地址,而不是真正意義上的數組
說了這么多,不知道你明白了沒有?
Ⅳ java 編程 數組的地址問題
直接列印的是引用地址
你第九行報錯是因為你定義了數組類型為Integer,你存一個Double當然會拋異常
Ⅵ 怎麼提取java中數組的地址
Java數組的內存地址是無法獲取的,Java的數組對象都是在運行時期動態分配的。
Ⅶ JAVA數組地址傳遞問題!
在Java中,參數的傳遞嚴格意義上講都是傳值的,只不過簡單很容易分清楚。而對於對象,有些復雜。
首先,在Java中是先聲明一個類的變數。然後,用類生成一個類的實例,也就是在內存中的類的實例區域,最後把這個區域的指針賦給類的這個變數。注意,變數中存的是指向對象的指針。
若是按傳址傳參數,是要改變這個對象變數所指的內存對象區域,也就是要在方法內把新對象賦給方法外的對象變數。但是,這在Java中辦不到。因為Java是把對象變數中的對象指針傳入方法,並沒有把變數本身的地址傳入方法;在方法中,會生成新變數接受這個對象的指針。所以,在Java方法中,可以改變當前對象中的內容,卻不能改變方法外邊變數的值,即所指向的對象。對於傳值、傳址的分析就是為了在應用中少犯錯誤。其他是次要的。
明白沒有,是傳值而不是傳值的地址!地址沒有變,C當然不變了!
Ⅷ 數組的地址是不是等於數組第一個元素的地址
在java語法中,數組的地址等於數組第一個元素的地址。
一旦通過int[] intArray = new int[]{1,1,2}創建一個int類型的數組之後,就會首先在堆內存中分配三個連續的地址空間,第一個地址也便是數組指向的地址。