1. Scope
νλ‘κ·Έλ¨μ΄ μ μΈν λ³μλ₯Ό μ¬μ©ν μ μλ λ²μ
μλ°κ° jvm μ ν΅ν΄ μ€νλλ κ³Όμ μ λλ΅μ μΌλ‘ κ·Έλ Έλ€.
public class ScopeEx01 { int n1 = 1; static int n2 = 5; static void m1() { int n3 = 10; System.out.println(n1); System.out.println(n2); System.out.println(n3); } void m2() { } public static void main(String[] args) { } }
ν ν΄λμ€ λ΄μμ 3κ°μ λ³μ n1,n2,n3 κ° μ μΈλμλ€.
μ΄λ λ©μλ m1 μμ λ³μλ₯Ό μ
λ ₯νμ λ, n2μ n3 λ μ
λ ₯μ΄ λμ§λ§ n1μ μΈμνμ§ λͺ»νλ€.
μ΄λ ν΄λμ€κ° μ€νλ λ κ°μ₯ λ¨Όμ static 곡κ°μ μλ κ°μ ν΄λμ€κ° μ€νλλ©΄ νμ λ μκΈ° λλ¬Έμ μΈμν μ μμ§λ§ n1 κ°μ λ©λͺ¨λ¦¬μμ μ°Ύμ μ μλ€. μ΄λλ n1 κ°μ heap μ ν΅ν΄ λμ μμΌμΌ μΈμν μ μλ€.
n3 κ°μ κ°μ λ©μλ λ΄μ μμ΄ μΈμ κ°λ₯νλ€.
2. Quese μ Stack
Quese : μλ£κ° μμλλ‘ μ€μ μ§μ΄ μ²λ¦¬λλ κ³Όμ . μ μ
μ μΆ λ°©μ
Stack : λ°μ΄ν°λ₯Ό μμλλ ννμ μλ£ κ΅¬μ‘°. κ°μ₯ λμ€μ μμΈ λ°μ΄ν°κ° κ°μ₯ λ¨Όμ μ€νλλ νμ
μ μΆ λ°©μ
stack μ static κ³Ό λ³κ°μ μ μ₯ 곡κ°μ΄λ€. μ²μ .classκ° μ€νλκ³ λ©μΈ λ©μλκ° μ€νλλ©΄ {} λ΄λΆμ μ½λκ° μ€νλλ€. Main queue μ Main stack μ΄ μμ±λλ€.
Main queue λ μλ°μ λΌμΈμ΄ μ€νλ λ μ½λμ μμλλ‘ μ§νλλ€.
γ public class ScopeEx01 { int n1 = 1; static int n2 = 5; static void m1() { int n3 = 10; //11λ²μ§Έ μ€ System.out.println(n3); //12λ²μ§Έ μ€ } void m2() { } public static void main(String[] args) { System.out.println(1); // 24λ²μ§Έ μ€ m1(); // 25λ²μ§Έ μ€ System.out.println(2); // 26λ²μ§Έ μ€ }
μ΄λ° λ©μΈ λ©μλμμ μ€νλλ©΄ Main queueκ° μμ±λκ³ , μμλλ‘ 24λ²μ§Έ μ€μ μ½λλ₯Ό cpuμ μ λ¬νλ μν μ νλ€.
κ·Έλ¦¬κ³ 25λ²μ§Έκ° λλ©΄ m1 λ©μλλ₯Ό νΈμΆνλ€. κ·Έλ¬λ©΄ m1 λ©μλ λ΄λΆμ {} κ° μ€νλκ³ μ΄λ m1 queus μ m1 stack μ΄ μμ±λλ€.
m1 stack μ λ³μ n3 μ΄ μ μ₯λκ³ m1 queus μ΄ 11λ²μ§Έμ€ λΆν° μμλλ‘ μ€νλλ€.
μ€νμ΄ μλ£λλ©΄ m1 queus κ³Ό m1 stack μ μ¬λΌμ§λ€.
μ΄ν λ©μΈ λ©μλμ 26λ²μ§Έ μ€κΉμ§ μ€νμ΄ μλ£λλ©΄ Main queue μ Main stack μ΄ μ¬λΌμ§κ³ λ©μΈ λ©μλλ μ’
λ£λλ€.
1. m1 λ©μλ λ΄λΆμ μ½λλ νΈμΆλ μ΄νμλ§ νμΈν μ μλ€. κ·Έ μ κΉμ§λ λ©λͺ¨λ¦¬μ m1 μ΄λΌλ λ©μλλ§ λ μλ€.
2. stack μ λ©μλκ° νΈμΆλ μ΄ν μμ±λμλ€κ° μλ£ ν μ¬λΌμ§κΈ° λλ¬Έμ λ©λͺ¨λ¦¬ μ¬μ©μ ν¨μ¨μ μ΄λ€.
Share article