陣列和方法的相互操作 引用傳遞

2021-09-11 05:17:52 字數 1939 閱讀 5328

引用傳遞:

記憶體現階段可以簡單分為以下兩部分:

棧記憶體: 方法中的區域性變數,方法的形參,引用

堆記憶體: 存放陣列內容、類物件內容(共享記憶體)

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 說說上面的程式產生的結果,以及產生這個結果的原因是什麼?我在以...