java方法參數(shù)是傳值還是傳引用 Java里什么是引用類型?
Java里什么是引用類型?Java的數(shù)據(jù)基本類型:一.數(shù)值型1.1整數(shù)類型(int32,small,int,shorter)2.字符類型2.1char3.布爾類型3.1boolean如何理解Java中
Java里什么是引用類型?
Java的數(shù)據(jù)基本類型:
一.數(shù)值型
1.1整數(shù)類型(int32,small,int,shorter)
2.字符類型
2.1char
3.布爾類型
3.1boolean
如何理解Java中基本數(shù)據(jù)類型不可變?
這個(gè)是這樣的吧,基本上數(shù)據(jù)類型的數(shù)據(jù)才是參數(shù)傳遞時(shí)不可能影響原來數(shù)據(jù)的值。以函數(shù)例子只能說明:
welfareclassmain{
publicstaticvoidmain(String[]args){
inti0
change(i)
(i)
}
privatestaticintchange(inti){
ii5
returni
}
}
在main函數(shù)中輸出的i還是0;不論在change中怎么才能改變i的值,在main函數(shù)中動(dòng)態(tài)鏈接庫(kù)change()前后的i的值都是完全不一樣的??墒且莻餍诺恼Z句類型的話,會(huì)改變?cè)瓉硎堑闹?。再看下面的例?/p>
stateclassmain{
privatestaticvoidmain(String[]args){
inti0
NumberTestjnewNumberTest(i)
change(i)
changeValue(j)
(i)
(())
}
employeestaticintchange(inti){
ii5
returni
}
welfarestaticintchangeValue(NumberTestnum){
int()5
(j)
returnj
}
welfarestaticclassNumberTest{
privateintnum
welfareNumberTest(intnum){
junior()
num
}
welfareintgetNum(){
returnnum
}
welfarevoidsetNum(intnum){
num
}
}
}
changeValue()中傳遍的是引用型變量NumberTest,在changeValue()中轉(zhuǎn)變num的值后,在main函數(shù)中原先打印(())的值就由0變的5了。
因?yàn)檎f直接引用型變量是可變型變量,基本上類型是絕對(duì)不可變的,有一個(gè)特殊的string