引用傳遞:
記憶體現階段可以簡單分為以下兩部分:棧記憶體: 方法中的區域性變數,方法的形參,引用
堆記憶體: 存放陣列內容、類物件內容(共享記憶體)
int[ ] data = new int[3];
,data 稱為陣列的引用(儲存在棧記憶體中),任何乙個引用一定指向一塊兒堆記憶體位址。只要看見關鍵字new,就一定在堆上分配空間。陣列作為引用資料型別,就一定可以發生引用傳遞。
//引用傳遞
int[
] data =
int;
int[
] data1 = data;
① 先觀察一下陣列是如何開闢空間的:public
② 多個棧記憶體指向相同的堆記憶體(引用傳遞)
public
class
arraydemo
//引用傳遞
int[
] temp = x;
//修改資料
1. 方法接收陣列
public
class
fangfajieshoushuzu
;printarray
(data)
;//相當於 int temp = data;
2. 方法返回陣列
public
class
fangfafanhuishuzu
//定義了乙個返回陣列的方法
現在的陣列上發生了引用傳遞,那麼就意味著方法在接收陣列後也可以修改陣列。
3. 方法修改陣列
public
class
fangfaxiugaishuzu
//定義了乙個返回陣列的方法
public
static
int[
]init()
;}//把陣列中的每個值擴大5倍
陣列的引用傳遞
還是線上乙個例子 public class arraytest3 fun array for int index array public static void fun int arr 結果 6 3 5這個程式本身沒有太大意義,但是呢主要是用來理解堆疊內存在陣列中使用以及分配,下面我們分析一下。在...
值的傳遞和引用傳遞
1 值型別和引用型別分別是什麼意思 區別是什麼 值型別 一些基礎型別,比如 基本資料型別 引用型別 string 物件 陣列等 區別 值型別操作的記憶體是分開的,引用型別實際操作時同一塊記憶體 2 什麼時裝箱 拆箱 大轉小 拆箱 小轉大 裝箱 裝箱是自動的 比如 int i 1 object o i...
引用傳遞和值傳遞的區別
有這麼一道面試題,題目如下 view plain using system public class test1 p.name,num static void a1 person p,intnum public class person 說說上面的程式產生的結果,以及產生這個結果的原因是什麼?我在以...