這一節基本數據類型參數和引用數據類型參數的傳遞過程。
數據類型參數和引用參數我們在前面章節中都已涉及到了,那么我們來看看下面的兩段代碼:
~~~
//基本數據類型參數傳遞
class Demo
{
public static void main(String[] args)
{
int x = 3;
change(x);//調用方法
System.out.println("x = " + x);//
}
public static void change(int x)
{
x = 4;
}
}
//引用類型數據參數傳遞
class Demo
{
int x = 3;
public static void main(String[] args)
{
Demo d = new Demo();
d.x = 9;
change(d);
System.out.println("d.x = " + d.x);
}
public static void change(Demo d)
{
d.x = 4;
}
}
~~~
現在我們來分別對這兩對代碼的運行程分析一下。
**一、對于基本數據類型參數傳遞代碼的運行過程分析:**
1.main方法進棧內存,main方法中有基本數據類型變量int x;
2.為main方法中的變量x賦值為3;
3.調用change(x)方法,則change方法進棧;
4.為change方法變量x賦值為4;
5.跳出change方法,同時change方法出棧,釋放所有change方法和change方法中的x,即把x=4釋放掉;
6.執行打印語句,些時的棧中只有main方法中的x,那么打印出的x=3;
7.跳出main方法,結束程序。
我們來看一下打印結果與我們的分析是不是一致的?

**二、對于引用數據類型參數傳遞代碼的運行過程分析:**
1.main方法進棧內存,main方法中有一個類類型變量Demo d;
2.new創建Demo對象,在堆內存中開辟一個空間,并把空間地址傳給d(我們這里假設為0x0078),并為該地址中的x初始化為0,然后把3賦給x;
3.把d所指堆內存(0x0078)中的x賦為9;
4.調用change(d)方法,change方法進棧,change方法中的對象d就是main方法中的d,指向之前的堆內存地址(0x0078);
5.把d所指堆內存(0x0078)中的x賦為4;
6.跳出change方法,同時change方法出棧,釋放change方法和方法中的對象d;
7.執行打印語句,些時的棧中也是只有main方法,并且d指向堆內存(0x0078),該地址中的x就是步驟5中的值4;
8.跳出main方法,結束程序。
我們看看結果:

我們從兩個代碼打印出的結果可以看出結果與我們的分析是完全一致的。
那么,基本數據類型參數和引用數據類型參數的過程就是我們上面分析的過程。
- 前言
- 1.1 基本常識
- 1.2 Java語言概述
- 1.3 Java語言的環境搭建
- 1.4 Java程序開發之初體驗--Hello World
- 2.1 關鍵字
- 2.2 標識符
- 2.3 注釋
- 2.4 常量
- 2.5 進制掃盲
- 2.6 變量和數據類型(1)
- 2.7 變量和數據類型(2)
- 2.8 運算符
- 3.1 if語句
- 3.2 switch語句
- 3.3 while和do-while語句
- 3.4 for語句
- 3.5 for循環的嵌套
- 3.6 break語句與continue語句
- 4.1 函數的定義
- 4.2 定義函數的兩個明確
- 4.3 函數的內存加載過程
- 4.4 函數的重載
- 5.1 數組的定義
- 5.2 數組的內存分配及特點
- 5.3 數組操作中常見問題
- 5.4 數組常用操作(1)
- 5.5 數組常用操作(2)
- 5.6 二維數組
- 6.1 面向對象的概述
- 6.2 類與對象的關系
- 6.3 對象的內存體現
- 6.4 成員變量與局部變量
- 6.5 類類型參數與匿名對象
- 6.6 基本數據類型參數與引用數據類型參數的傳遞過程
- 6.7 封裝
- 7.1 構造函數概述與默認構造函數
- 7.2 構造函數與一般函數的區別
- 7.3 構造函數的重載
- 7.4 構造函數的內存加載
- 7.5 構造函數需要注意的幾個細節
- 7.6 this關鍵字的原理
- 7.7 this關鍵字的細節與應用
- 8.1 static關鍵字之特點
- 8.2 成員變量與靜態變量的區別
- 8.3 static關鍵字使用的注意細節
- 8.4 main函數的解析與細節
- 8.5 static關鍵字的使用場景
- 8.6 靜態的內存加載
- 8.7 靜態代碼塊
- 8.8 構造代碼塊
- 9.1 繼承
- 9.2 單繼承與多重繼承
- 9.3 子父類中成員變量特征體現