值引用java
① java 值引用,對象引用 的問題,求解釋,為什麼執行了 clear 方法後,對象,沒有變成null
你對引用傳遞的理解還是有問題。
你new的Item對象。在進入clear方法後。
一共有三個引用,在引用著這個Item對象
他們是:item、object(方法參數)和list中的數組引用
clear方法執行完以後,object的生命周期結束。
此時還生item和list中的數組引用這兩個引用了。
一次循環結束後,下一次循環
item = new Item();
item又指向了其他的item對象。
此時原來的item對象只有list中的數組引用在引用著它了。
所以你的clear方法是沒起到任何作用的。即便你不去設置為null
方法結束之後,object的作用范圍也已經無效了。
所以真正要把它置為null
必須list.set(i, null);
② Java值類型和引用類型,以及復制的是什麼東西
java 中的數據類型分為兩大類:值類型(基本數據類型)和引用類型(復合數據類型)
一,值類型分為 1,整數類型(byte,short,int,long) 2,浮點類型(float,double) 3,布爾類型(boolean) 4,字元類型(char)
二,引用值類型 除了值類型外就是引用值類型了,引用值類型有1,類類型(class) 2,數組 3,介面類型(interface)
關於復制的是什麼?我還真不知道。。。。。
③ java到底是值傳遞還是引用傳遞
java中方法參數傳遞方式是按值傳遞。所謂值傳遞,就是將實際參數值的副本(復製品)傳入方法內,而自己本身不會受到任何影響。
如果參數是基本類型,傳遞的是基本類型的字面量值的拷貝。
④ java類方法如何實現引用傳遞和值傳遞
參數是基本類型就是傳值,傳對象就是引用傳遞。
swap(Integer x, Integer y)可以傳遞引用,但是沒辦法實現交換。這跟Integer的實現方式有關。所以不是引用傳遞就一定能改變外面的值。
下面是引用傳遞,交換的情況,又臭又長。
classUntitled{
intneedFix;
publicstaticvoidswap(Untitledx,Untitledy){
inttemp=x.needFix;
x.needFix=y.needFix;
y.needFix=temp;
}
publicstaticvoidmain(String[]args){
Untitle1=newUntitled();
Untitle2=newUntitled();
u1.needFix=3;
u2.needFix=4;
swap(u1,u2);
System.out.println(u1.needFix+","+u2.needFix);
}
}
另外,你可以考慮一下引用傳遞,不過也是一種傳值,java裡面沒有事實上的指針。直接交換引用指向的對象是沒有作用的。
Untitledtemp=x;
x=y;
y=temp;
無效。
⑤ Java方法參數是引用調用還是值調用
Java中方法是值調用還是引用調用取決於方法中參數的類型。Java基本數據類型的參數為值調用,其他的數組、自定義的類,這幾種類型為引用類型,
String類特殊:
當String變數定義時這樣定義:String name = "張三";,這樣的定義參數的方法為值傳遞。
⑥ Java類是值傳遞還是引用傳遞
基本類型是值傳遞,
引用類型
可以看作是是
引用傳遞
.舉個簡單的例子吧
public
class
tt
{
public
static
void
change(int
a)
{
a=2;
}
public
static
void
change(int[]
A)
{
A[0]=2;
}
public
static
void
main(String[]
args)
{
int
b=1;
change(b);
System.out.println(b);//基本類型是
值傳遞
,所以b的值沒有改變
int[]
B={1};
change(B);
System.out.println(B[0]);//數組版,對象等引用類型是引用傳權遞,所以B的值發生改變
}
}