Java中引用傳遞及基本應用(物件的引用傳遞等)

2021-09-21 18:47:22 字數 1776 閱讀 6539

所謂的引用傳遞就是指將堆記憶體空間的使用權交給多個棧空間。下面有三個範例:

範例一:

物件引用傳遞

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...