java中的形參與實參的區(qū)別對比解析
一、主體不同
1、實參:在調(diào)用有參函數(shù)時,函數(shù)名后面括號中的參數(shù)為“實際參數(shù)”。
2、形參:不是實際存在變量,又稱虛擬變量。
二、目的不同
1、實參:可以是常量、變量或表達(dá)式,無論實參是何種類型的量,才進(jìn)行函數(shù)調(diào)用時,都必須具有確定的值,以便把這些值傳遞給形參。
2、形參:定義函數(shù)名和函數(shù)體的時候使用的參數(shù),目的是用來接收調(diào)用該函數(shù)時傳入的參數(shù)。
三、特點不同
1、實參:在調(diào)用函數(shù)過程中,系統(tǒng)會把實參的值傳遞給被調(diào)用函數(shù)的形參?;蛘哒f,形參從實參得到一個值。值在函數(shù)調(diào)用期間有效,可以參加該函數(shù)中的運算。
2、形參:形參的本質(zhì)是一個名字,不占用內(nèi)存空間。
形參與實參的概念
形參(形式參數(shù))是方法定義時聲明的參數(shù),用于接收調(diào)用時傳入的值。形參屬于方法的局部變量,作用域僅限于方法內(nèi)部。
實參(實際參數(shù))是調(diào)用方法時傳遞給形參的具體值或變量,可以是常量、變量或表達(dá)式。
主要區(qū)別
定義位置不同
形參出現(xiàn)在方法聲明中,例如:
public void print(int num) { ... } // num是形參
實參出現(xiàn)在方法調(diào)用時,例如:
print(10); // 10是實參
作用階段不同
形參在方法定義階段聲明,用于描述方法需要的數(shù)據(jù)類型和名稱。
實參在方法調(diào)用階段傳遞,為形參提供具體的值。
內(nèi)存分配不同
形參在方法被調(diào)用時分配內(nèi)存(棧內(nèi)存),方法結(jié)束后釋放。
實參可以是已存在的變量或常量,其內(nèi)存分配與形參無關(guān)。
示例說明
public class Example {
// 形參:a和b
public static int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
int x = 5, y = 3;
// 實參:x和y
int result = add(x, y);
System.out.println(result); // 輸出8
}
}注意事項
- 形參和實參的類型必須匹配或兼容(支持隱式類型轉(zhuǎn)換)。
- 基本數(shù)據(jù)類型傳遞的是值的副本(值傳遞),形參修改不影響實參。
- 引用數(shù)據(jù)類型傳遞的是引用的副本,形參和實參指向同一對象,通過形參修改對象會影響實參引用的對象。
值傳遞與引用傳遞的區(qū)別
值傳遞示例(基本數(shù)據(jù)類型)
public static void change(int num) {
num = 100;
}
public static void main(String[] args) {
int a = 10;
change(a);
System.out.println(a); // 輸出10(未改變)
}引用傳遞示例(對象類型)
public static void modifyArray(int[] arr) {
arr[0] = 99;
}
public static void main(String[] args) {
int[] array = {1, 2, 3};
modifyArray(array);
System.out.println(array[0]); // 輸出99(已改變)
}形參與實參的概念
形參(形式參數(shù))是方法定義時聲明的參數(shù),用于接收調(diào)用時傳入的值。形參屬于方法的局部變量,作用域僅限于方法內(nèi)部。
實參(實際參數(shù))是調(diào)用方法時傳遞給形參的具體值或變量,可以是常量、變量或表達(dá)式。
主要區(qū)別
定義位置不同
形參出現(xiàn)在方法聲明中,例如:
public void print(int num) { ... } // num是形參
實參出現(xiàn)在方法調(diào)用時,例如:
print(10); // 10是實參
作用階段不同
形參在方法定義階段聲明,用于描述方法需要的數(shù)據(jù)類型和名稱。
實參在方法調(diào)用階段傳遞,為形參提供具體的值。
內(nèi)存分配不同
形參在方法被調(diào)用時分配內(nèi)存(棧內(nèi)存),方法結(jié)束后釋放。
實參可以是已存在的變量或常量,其內(nèi)存分配與形參無關(guān)。
示例說明
public class Example {
// 形參:a和b
public static int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
int x = 5, y = 3;
// 實參:x和y
int result = add(x, y);
System.out.println(result); // 輸出8
}
}注意事項
- 形參和實參的類型必須匹配或兼容(支持隱式類型轉(zhuǎn)換)。
- 基本數(shù)據(jù)類型傳遞的是值的副本(值傳遞),形參修改不影響實參。
- 引用數(shù)據(jù)類型傳遞的是引用的副本,形參和實參指向同一對象,通過形參修改對象會影響實參引用的對象。
值傳遞與引用傳遞的區(qū)別
值傳遞示例(基本數(shù)據(jù)類型)
public static void change(int num) {
num = 100;
}
public static void main(String[] args) {
int a = 10;
change(a);
System.out.println(a); // 輸出10(未改變)
}引用傳遞示例(對象類型)
public static void modifyArray(int[] arr) {
arr[0] = 99;
}
public static void main(String[] args) {
int[] array = {1, 2, 3};
modifyArray(array);
System.out.println(array[0]); // 輸出99(已改變)
}到此這篇關(guān)于java中的形參與實參的區(qū)別的文章就介紹到這了,更多相關(guān)java形參與實參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 利用java反射機(jī)制動態(tài)加載類的簡單實現(xiàn)
下面小編就為大家?guī)硪黄猨ava 利用java反射機(jī)制動態(tài)加載類的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09
Spring AI與DeepSeek實戰(zhàn)一之快速打造智能對話應(yīng)用
本文詳細(xì)介紹了如何通過SpringAI框架集成DeepSeek大模型,實現(xiàn)普通對話和流式對話功能,步驟包括申請API-KEY、項目搭建、配置API-KEY、創(chuàng)建ChatClient對象、創(chuàng)建對話接口、切換模型、使用prompt模板、流式對話等,感興趣的朋友一起看看吧2025-03-03
解決SpringMvc中普通類注入Service為null的問題
這篇文章主要介紹了解決SpringMvc中普通類注入Service為null的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
java中l(wèi)ist和數(shù)組互相轉(zhuǎn)換的一些方法總結(jié)
在日常的Java開發(fā)中經(jīng)常會遇到需要在數(shù)組和List之間進(jìn)行轉(zhuǎn)換的情況,這篇文章主要給大家介紹了關(guān)于java中l(wèi)ist和數(shù)組互相轉(zhuǎn)換的一些方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-12-12
IDEA中的Run/Debug Configurations各項解讀
這篇文章主要介紹了IDEA中的Run/Debug Configurations各項解讀,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09

