Java參數(shù)傳遞及值傳遞實現(xiàn)原理詳解
java方法參數(shù)的傳遞有兩種,值傳遞和引用傳遞。
1.按值傳遞:
參數(shù)類型是int,long等八大基本數(shù)據(jù)類型時,參數(shù)傳遞的過程是按值拷貝的過程
如下代碼
public static void main(String[] args) {
int a = 5;
fun(a);
System.out.println(a);// 輸出結(jié)果為5
}
private static void fun(int a) {
a += 1;
}
2.按引用傳遞
參數(shù)類型為引用類型,參數(shù)傳遞的過程采用拷貝引用的方式
public class Test {
public static void main(String[] args) {
A a = new A(5);
fun(a);
System.out.println(a.a);// 輸出結(jié)果為6
}
private static void fun(A a) {
a.a += 1;
}
static class A {
public int a;
public A(int a) {
this.a = a;
}
}
}
再看下面這種情況:
public class Test {
public static void main(String[] args) {
Integer a = 5;
fun(a);
System.out.println(a);// 輸出結(jié)果為5
}
private static void fun(Integer a) {
a += 1;
}
}
這里明明是引用傳遞,為什么沒有改變對象的值呢?
這里其實使用了基本數(shù)據(jù)類型封裝類的自動裝箱功能。
Integer a = 5,編譯后實際為Integer a = Integer.valueOf(5),查看Integer的源碼,并沒有改變原對象的值,只是將其引用指向了另一個對象。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java實戰(zhàn)案例之用戶注冊并發(fā)送郵件激活/發(fā)送郵件驗證碼
現(xiàn)在很多的網(wǎng)站都提供有用戶注冊功能,當(dāng)我們注冊成功之后就會收到封注冊網(wǎng)站的郵件,郵件里包含了我們的注冊的用戶名和密碼及激活賬戶的超鏈接等信息,這篇文章主要給大家介紹了關(guān)于java實戰(zhàn)案例之用戶注冊并發(fā)送郵件激活/發(fā)送郵件驗證碼的相關(guān)資料,需要的朋友可以參考下2021-09-09
javaweb實現(xiàn)百度GPS定位接口(經(jīng)緯度)
這篇文章主要介紹了javaweb實現(xiàn)百度GPS定位接口(經(jīng)緯度),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
SpringBoot對接clerk實現(xiàn)用戶信息獲取功能
Clerk是一個提供身份驗證和用戶管理的服務(wù),可以幫助開發(fā)者快速集成這些功能,下面我們就來看看如何使用Spring?Boot對接Clerk實現(xiàn)用戶信息的獲取吧2025-02-02
詳解Spring Security中獲取當(dāng)前登錄用戶的詳細信息的幾種方法
本文主要介紹了詳解Spring Security中獲取當(dāng)前登錄用戶的詳細信息的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
IntelliJ IDEA之高效代碼插件RainBow Brackets詳解
這篇文章主要介紹了IntelliJ IDEA之高效代碼插件RainBow Brackets詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
Java 字節(jié)數(shù)組(byte[])和整型(int)的相互轉(zhuǎn)換
在Java編程中,有時需要將字節(jié)類型(byte)轉(zhuǎn)換為整數(shù)類型(int),或者反過來轉(zhuǎn)換,本文主要介紹了Java 字節(jié)數(shù)組(byte[])和整型(int)的相互轉(zhuǎn)換,感興趣的可以了解一下2023-12-12

