91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java引用傳遞和值傳遞棧內存與堆內存的指向操作

發布時間:2020-10-11 10:07:23 來源:腳本之家 閱讀:156 作者:FrankLiner 欄目:開發技術

值傳遞:

(形式參數類型是基本數據類型):方法調用時,實際參數把它的值傳遞給對應的形式參數,形式參數只是用實際參數的值初始化自己的存儲單元內容,是兩個不同的存儲單元,所以方法執行中形式參數值的改變不影響實際參數的值。

引用傳遞:

(形式參數類型是引用數據類型參數):也稱為傳地址。方法調用時,實際參數是對象(或數組),這時實際參數與形式參數指向同一個地址,在方法執行中,對形式參數的操作實際上就是對實際參數的操作,這個結果在方法結束后被保留了下來,所以方法執行中形式參數的改變將會影響實際參數。

Java引用傳遞和值傳遞棧內存與堆內存的指向操作

現有如下代碼

class Person{
 private String name;
 private int age;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
}

public class Neicunzhixiang {
 public static void main(String[] args) {
  Person simth;
  simth=new Person();
  simth.setName("史密斯");
  simth.setAge(12);  
 }
}

現只看主方法中部分

public class Neicunzhixiang {
 public static void main(String[] args) {
  Person simth;
  simth=new Person();
  simth.setName("史密斯");
  simth.setAge(12);  
 }
}

下面用一張圖來解釋每行代碼棧內存與堆內存之間的關系

Java引用傳遞和值傳遞棧內存與堆內存的指向操作

將左邊紫色部分看為棧內存,右邊藍色部分看為堆內存,下邊綠色部分為當前圖示所代表的代碼。

當person simth時 并沒有在堆內存中開辟空間,所以simth沒有指向

當simth=new person時,在堆內存中開辟了空間,所以棧內存simth指向了堆內存;

當simth.name=“史密斯”時,定義了堆內存中name的屬性,所以name=“史密斯”;

當simth.age=12時,定義了堆內存中age的屬性,所以age=12。

以上這篇Java引用傳遞和值傳遞棧內存與堆內存的指向操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

喀什市| 隆子县| 西盟| 定西市| 江阴市| 巴楚县| 松溪县| 汕尾市| 金堂县| 景洪市| 黄大仙区| 吴桥县| 呼伦贝尔市| 固镇县| 泰安市| 黄冈市| 明水县| 宁蒗| 汉寿县| 金寨县| 旅游| 内乡县| 渭源县| 平湖市| 合作市| 深泽县| 咸丰县| 双流县| 阿克陶县| 青阳县| 浮梁县| 泌阳县| 康马县| 金山区| 通许县| 隆安县| 毕节市| 尖扎县| 临猗县| 浮山县| 砚山县|