๋ฐ์ํ
์๋ฐ๋ call by value (๊ฐ์ ์ํ ํธ์ถ) ๋ฐฉ์์ด๋ค.
public class CallTest {
public static void main(String[] args) {
String test1 = "test1";
String test2 = "test2";
CallTest.callByValue(test1, test2); // ๊ฐ์ ์ํ ์ฐธ์กฐ
// CallTest.callByValue ์์ ๋งค๊ฐ๋ณ์ ์ ๋ฌ ํ ๋ฐ๊ฟง๋ค ํ์ฌ, test1, test2์ ์ํฅ ์๋ฏธ์นจ.
System.out.println("test1:" + test1+", test2:"+test2);
}
public static void callByValue(String test1, String test2) {
String temp = test1;
test1 = test2;
test2 = temp;
System.out.println("test1:" + test1+", test2:"+test2);
}
}
/*
// result)
test1:test2, test2:test1
test1:test1, test2:test2
**/
ํจ์ ํธ์ถ ์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ ๊ทธ๋๋ก ์ ๋ฌ!
์ ๋ฌํ ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉ!
๋งค๊ฐ๋ณ์์ ๊ฐ๋ค์ ๊ฐ๊ฐ์ ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์์น์ ์ ์ฅ๋จ.
ํจ์ ๋ด๋ถ์์ ๋ณ๊ฒฝํ ์ฌํญ์ ํธ์ถ์์ ์ค์ ๋งค๊ฐ๋ณ์์ ๋ฐ์๋์ง๋ ์์.
call by reference (์ฃผ์์ ์ํ ํธ์ถ)
๋งค๊ฐ๋ณ์๋ ๋์ผํ ์์น๋ฅผ ์ฐธ์กฐํ๋ฏ๋ก ํจ์ ๋ด๋ถ์์ ๋ณ๊ฒฝํ ์ฌํญ์ ์ค์ ํธ์ถ์์ ๋งค๊ฐ๋ณ์์ ๋ฐ์๋จ.
ํจ์ ํธ์ถ ์ ๋งค๊ฐ๋ณ์์ ์ฃผ์๋ฅผ ์ ๋ฌํ์ฌ ์ฌ์ฉ!
์ฐธ์กฐ์ ์ํ ํธ์ถ (C++ ํฌ์ธํฐ)
/**
C++ ์ธ์ด์์ ๋ณ์ ์ฃผ์๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ ํ์์ ๋
result)
test1:test2, test2:test1
test1:test2, test2:test1 // ์ฃผ์ ์ฐธ์กฐ์ ์ํด ๊ฐ์ด ๋ณ๊ฒฝ ๋จ.
*/
์ฐธ๊ณ
https://www.geeksforgeeks.org/difference-between-call-by-value-and-call-by-reference/
๋ฐ์ํ
'๊ฐ๋ฐ > java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
WebClient ์ฌ์ฉ์ ์ฃผ์ํ ์ ! (0) | 2023.08.13 |
---|---|
[RxJava] ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ (0) | 2022.05.02 |
์๋ฐ-๋๋ค(lambda) (0) | 2021.05.28 |
ํ๋ก์ธ์ค / ์ค๋ ๋ (0) | 2021.05.26 |
jdbc, mybatis, jpa (0) | 2018.12.31 |