所謂的引用傳遞就是指將堆記憶體空間的使用權交給多個棧空間。下面有三個範例:
範例一:
物件引用傳遞
class demo
public class frist
public static void fun(demo d2)
}
執行結果:
未改變temp的值50
fun()方法呼叫之前500
fun()方法呼叫之後70
棧記憶體
堆記憶體d1
temp=30
(a)demo d1=new demo();
宣告了乙個物件d1,此時d1指向temp
棧記憶體堆記憶體d1
temp=500
(b)d1.temp=500;
修改物件屬性中的內容
棧記憶體堆記憶體d1
temp=500
d2(c)fun(d1);
呼叫fun方法,傳遞物件,此時d1和d2都指向temp
棧記憶體堆記憶體d1
temp=70
d2(d)fun()方法執行完後斷開連線;
fun方法執行完畢,d2與temp建立連線之後又斷開連線
範例二:
引用傳遞
public class frist
public static void fun(string str2)
}
執行結果:
呼叫fun()方法之前,str1的值為:hello
呼叫fun()方法之後,str1的值為:hello
每乙個字串物件都表示乙個匿名物件,這樣在fun方法的操作中,如果為str2重新設定內容,就相當於改變了str2的引用,而str1不會受任何影響。
傳遞內容僅供參考,重點掌握傳遞方法
範例三:
引用傳遞
class demo
public class frist
public static void fun(demo d2)
}
執行結果:
呼叫fun()方法之前,str1的值為:hello
呼叫fun()方法之後,str1的值為:world
傳遞內容僅供參考,重點掌握傳遞方法
class demo
public int gettemp()
public void settemp(int temp)
}public class frist
}
執行結果:
未改變temp的值50
fun()方法呼叫之前500
fun()方法呼叫之後100
本例中注釋部分表述不準確,因為字串的內容一旦宣告是不可以改變的,改變的只是記憶體位址。乙個string物件內容的改變實際上是通過記憶體位址的斷開—連線變化完成的,而本身字串中的內容並沒有任何的變化。
JAVA類的基本應用
編寫乙個類,定義乙個修辭許可權為private的成員變數,定義2個成員方法,乙個方法為成員變數賦值,另乙個獲取這個成員變數的值,保證其它類繼承該類時能夠獲取該類的成員變數的值。編寫乙個類,定義乙個修辭許可權為private的成員變數,定義2個成員方法,乙個方法為成員變數賦值,另乙個獲取這個成員變數的...
java流的基本應用
按流動方向的不同可以分為輸入流和輸出流 按處理資料的單位不同分為位元組流和字元流 按功能的不同可分為節點流和處理流 io流最關鍵的就是 讀進來 寫進去。所有流都繼承於以下四種抽象流型別的某一種 抽象流 位元組流 字元流 輸入流 inputstream reader 輸出流 outputstream ...
Hive簡介及基本應用
hadoop是乙個開源框架來儲存和處理大型資料在分布式環境中。它包含兩個模組,乙個是mapreduce,另外乙個是hadoop分布式檔案系統 hdfs hive作為構建在hadoop之上的資料倉儲,它提供了一系列的工具,可以用來進行資料提取轉化載入 etl 這是一種可以儲存 查詢和分析儲存在hado...