κ°λ°/java
java - call by value, call by reference
mungmang
2021. 7. 11. 02:06
λ°μν
μλ°λ 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/
λ°μν