java中的形參與實(shí)參的區(qū)別對(duì)比解析
一、主體不同
1、實(shí)參:在調(diào)用有參函數(shù)時(shí),函數(shù)名后面括號(hào)中的參數(shù)為“實(shí)際參數(shù)”。
2、形參:不是實(shí)際存在變量,又稱虛擬變量。
二、目的不同
1、實(shí)參:可以是常量、變量或表達(dá)式,無(wú)論實(shí)參是何種類型的量,才進(jìn)行函數(shù)調(diào)用時(shí),都必須具有確定的值,以便把這些值傳遞給形參。
2、形參:定義函數(shù)名和函數(shù)體的時(shí)候使用的參數(shù),目的是用來(lái)接收調(diào)用該函數(shù)時(shí)傳入的參數(shù)。
三、特點(diǎn)不同
1、實(shí)參:在調(diào)用函數(shù)過(guò)程中,系統(tǒng)會(huì)把實(shí)參的值傳遞給被調(diào)用函數(shù)的形參?;蛘哒f(shuō),形參從實(shí)參得到一個(gè)值。值在函數(shù)調(diào)用期間有效,可以參加該函數(shù)中的運(yùn)算。
2、形參:形參的本質(zhì)是一個(gè)名字,不占用內(nèi)存空間。
形參與實(shí)參的概念
形參(形式參數(shù))是方法定義時(shí)聲明的參數(shù),用于接收調(diào)用時(shí)傳入的值。形參屬于方法的局部變量,作用域僅限于方法內(nèi)部。
實(shí)參(實(shí)際參數(shù))是調(diào)用方法時(shí)傳遞給形參的具體值或變量,可以是常量、變量或表達(dá)式。
主要區(qū)別
定義位置不同
形參出現(xiàn)在方法聲明中,例如:
public void print(int num) { ... } // num是形參
實(shí)參出現(xiàn)在方法調(diào)用時(shí),例如:
print(10); // 10是實(shí)參
作用階段不同
形參在方法定義階段聲明,用于描述方法需要的數(shù)據(jù)類型和名稱。
實(shí)參在方法調(diào)用階段傳遞,為形參提供具體的值。
內(nèi)存分配不同
形參在方法被調(diào)用時(shí)分配內(nèi)存(棧內(nèi)存),方法結(jié)束后釋放。
實(shí)參可以是已存在的變量或常量,其內(nèi)存分配與形參無(wú)關(guān)。
示例說(shuō)明
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;
// 實(shí)參:x和y
int result = add(x, y);
System.out.println(result); // 輸出8
}
}注意事項(xiàng)
- 形參和實(shí)參的類型必須匹配或兼容(支持隱式類型轉(zhuǎn)換)。
- 基本數(shù)據(jù)類型傳遞的是值的副本(值傳遞),形參修改不影響實(shí)參。
- 引用數(shù)據(jù)類型傳遞的是引用的副本,形參和實(shí)參指向同一對(duì)象,通過(guò)形參修改對(duì)象會(huì)影響實(shí)參引用的對(duì)象。
值傳遞與引用傳遞的區(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(未改變)
}引用傳遞示例(對(duì)象類型)
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ù))是方法定義時(shí)聲明的參數(shù),用于接收調(diào)用時(shí)傳入的值。形參屬于方法的局部變量,作用域僅限于方法內(nèi)部。
實(shí)參(實(shí)際參數(shù))是調(diào)用方法時(shí)傳遞給形參的具體值或變量,可以是常量、變量或表達(dá)式。
主要區(qū)別
定義位置不同
形參出現(xiàn)在方法聲明中,例如:
public void print(int num) { ... } // num是形參
實(shí)參出現(xiàn)在方法調(diào)用時(shí),例如:
print(10); // 10是實(shí)參
作用階段不同
形參在方法定義階段聲明,用于描述方法需要的數(shù)據(jù)類型和名稱。
實(shí)參在方法調(diào)用階段傳遞,為形參提供具體的值。
內(nèi)存分配不同
形參在方法被調(diào)用時(shí)分配內(nèi)存(棧內(nèi)存),方法結(jié)束后釋放。
實(shí)參可以是已存在的變量或常量,其內(nèi)存分配與形參無(wú)關(guān)。
示例說(shuō)明
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;
// 實(shí)參:x和y
int result = add(x, y);
System.out.println(result); // 輸出8
}
}注意事項(xiàng)
- 形參和實(shí)參的類型必須匹配或兼容(支持隱式類型轉(zhuǎn)換)。
- 基本數(shù)據(jù)類型傳遞的是值的副本(值傳遞),形參修改不影響實(shí)參。
- 引用數(shù)據(jù)類型傳遞的是引用的副本,形參和實(shí)參指向同一對(duì)象,通過(guò)形參修改對(duì)象會(huì)影響實(shí)參引用的對(duì)象。
值傳遞與引用傳遞的區(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(未改變)
}引用傳遞示例(對(duì)象類型)
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中的形參與實(shí)參的區(qū)別的文章就介紹到這了,更多相關(guān)java形參與實(shí)參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Java+SSM實(shí)現(xiàn)電影院購(gòu)票系統(tǒng)
今天小編給大家?guī)?lái)一款SSM的電影院售票系統(tǒng),非常不錯(cuò)的一個(gè)項(xiàng)目,是學(xué)習(xí)?javaweb編程必備。文中的示例代碼講解詳細(xì),需要的可以參考一下2022-04-04
使用Java實(shí)現(xiàn)二維碼生成與掃碼驗(yàn)證功能
在現(xiàn)代軟件開(kāi)發(fā)中,二維碼被廣泛應(yīng)用于各種場(chǎng)景,例如支付、預(yù)約、身份驗(yàn)證等,本篇文章將以 Java 為例,介紹如何實(shí)現(xiàn)二維碼的生成以及掃碼驗(yàn)證的功能,需要的朋友可以參考下2025-08-08
SpringSecurity實(shí)現(xiàn)登陸認(rèn)證并返回token方式
這篇文章主要介紹了SpringSecurity實(shí)現(xiàn)登陸認(rèn)證并返回token方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
SpringBoot3.x與MyBatis-Plus兼容問(wèn)題小結(jié)
SpringBoot3.2+版本使用MyBatis-Plus時(shí),出現(xiàn)等類型不匹配/依賴沖突報(bào)錯(cuò),下面就來(lái)詳細(xì)的介紹一下SpringBoot3.x與MyBatis-Plus兼容問(wèn)題小結(jié),感興趣的可以了解一下2026-04-04
Java線程活鎖的實(shí)現(xiàn)與死鎖等的區(qū)別
活鎖是一種遞歸情況,其中兩個(gè)或更多線程將繼續(xù)重復(fù)特定的代碼邏輯,本文主要介紹了Java線程活鎖的實(shí)現(xiàn)與死鎖等的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04

