
.class νμΌμ λ€κ³ μμ μ€νν λ
- static μ°Ύμ
- main μ°Ύμ μ€ν
λ©λͺ¨λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ© β κ΄λ¦¬νλ λ°©λ²
λ©λͺ¨λ¦¬ : μ μ₯ μμ, μμμ λν μ£Όμ(λ²μ§)κ° μμ
λ
Όλ¦¬μ μΌλ‘ μμμ ꡬλΆν΄μ μ¬μ©ν¨
Static : μμμ λΆν° λ©λͺ¨λ¦¬μ λμ
package ex04;
/**
* JVMμ΄ μμν λ
* 1. static μ°Ύμ -> age, main
* 2. main μ°Ύμμ μ€ν
*/
class Person1{
static int age = 20;
char gender = 'μ¬';
// μμ μλ£ν(primitive data type)
// 컀μ€ν
μλ£ν(λ΄κ° λ§λ μλ£ν)
}
public class MemEx01 {
public static void main(String[] args) {
System.out.println(Person1.age);
}
}
νΉμ§ : μ μ ν λΉ
mainμ΄ μ€νλκΈ° μ μ λ©λͺ¨λ¦¬μ λΈ
μλͺ
μ£ΌκΈ°κ° κ°μ₯ κΈΊ
ν΄λμ€λͺ
.λ³μλͺ
: static 곡κ°μ μ΄λμλ μ°Ύμ μ μμ
ν΄λμ€μ μμΌλ©΄ ν΄λμ€λͺ
μ μλ΅ κ°λ₯ν¨
λ©λͺ¨λ¦¬λ₯Ό λ§μ΄ μ¬μ©ν¨
Heap : λμ μΌλ‘ μν λ λμ
package ex04;
class Person2{
int age = 10;
char gender = 'λ¨';
}
public class MemEx02 {
public static void main(String[] args) {
System.out.println("1λ
μ§λ¨");
System.out.println("2λ
μ§λ¨");
System.out.println("3λ
μ§λ¨");
Person2 p2 = new Person2(); // νμ
λͺ
+ λ³μ = new ν΄λμ€λͺ
;
System.out.println(p2.age);
System.out.println(p2.gender);
System.out.println("λ©μΈ μ’
λ£");
}
}

μ‘μΈμ€ :
νΉμ§ : λμ ν λΉ
λ΄κ° μν λ λ©λͺ¨λ¦¬μ λμ
static λ³΄λ€ μλͺ
μ£ΌκΈ°κ° μ§§μ
heap μ°Ύλ λ°©λ²
μ¬λ¬λ² λμΈ μ μμ > κ°λ₯΄ν€λ λ³μκ° νμν¨
νμ
λͺ
+ λ³μ = new ν΄λμ€λͺ
(); // ν΄λμ€ μμ μλ λ΄μ©μ λ©λͺ¨λ¦¬μ λμStack : λ©μλκ° μ€νλ λ λμ
package ex04;
public class ScopeEx01 {
int n1 = 1;
static int n2 =2;
static void m1(){
int n1 = 10;
System.out.println("m1 : " + n1); // n1 = 10
}
void m2(){
System.out.println("m2 : " + n1); // n1 = 1
}
//main μμμ μ staticμ n2 λ³μμ n1 λ©μλ μ΄λ¦λ§ λ‘λλμ΄ μμ
public static void main(String[] args) {
System.out.println("1");
m1();
System.out.println("2");
}
}Stack : μμ μ μ₯μ μν΄ λ§λ€μ΄μ§
Queue : μμλλ‘ μ½λλ₯Ό μ€ννκΈ° μν΄ λ§λ€μ΄μ§
(λ°μ΄ν° μ μ₯x)
Scope : ν΄λΉ λ³μμ μ¬μ© λ²μ
μλ‘μ stackμ μ κ·Όμ΄ μλ¨
μ κΉ λ΄λ€ μ¬λΌμ§λκΉ μΈλΆμμ μ°Ύμ μ μμ
returnμΌλ‘ μ λ¬ λ°μμΌ ν¨/main λ³μκ° λ¨
μλͺ
μ£ΌκΈ° : static < heap< statick
1. ν΄λμ€ λ‘λ(λ©λͺ¨λ¦¬μ ν΄λμ€κ° λΈ)
- static μ°ΎκΈ°
ν΄λμ€ λ³λ‘ μμμ΄ λλ¨
μλλ νλ‘μ νΈ μμ μλ λͺ¨λ staticμ΄ λΈ
- mainμ μ°Ύμ μ€ν
mainμ κ·Όκ±°
static : μ€νμ μ λ©λͺ¨λ¦¬μ λ μμ
public : μΈλΆμ μλ JVMμ΄ μ κ·Ό κ°λ₯
- mainλ©μλκ° μ΄λ¦¬λ©΄ main Queueκ° μ€ν
put : λΌμΈλ€μ΄ λ΄κΉ
pop : λλμ λ©λͺ¨λ¦¬μμ CPUλ‘ κ°μ λͺ¨λν°μ μΆλ ₯λ¨

μ μ₯λλ 곡κ°μ΄ λ€λ¦
package ex04;
public class ScopeEx01 {
int n1 = 1;
static int n2 =2;
static void m1(){
int n1 = 10;
System.out.println("m1 : " + n1); // n1 = 10
}
void m2(){
System.out.println("m2 : " + n1); // n1 = 1
}
//main μμμ μ staticμ n2 λ³μμ n1 λ©μλ μ΄λ¦λ§ λ‘λλμ΄ μμ
public static void main(String[] args) {
System.out.println("1");
m1();
System.out.println("2");
ScopeEx01 sc = new ScopeEx01();
sc.m2();
}
}
λ©μλ λ΄λΆμ λ³μ : μ§μλ³μ / μλͺ
μ£ΌκΈ°κ° κ°μ₯ μ§§μ
λ©μλλ μ΄λ¦λ§ λΈ
μ°Έμ‘°λ³μ : μ£Όμλ₯Ό κ°μ§κ³ μμ / *λ₯Ό λΆμ
heapμ΄λ staticμ λ€ μ°Ύμ μ μμ
κ°μ scopeμ μλ data μ 리
static (n2 =2, m1(), main)
μ΄λμμλ μ§ μ κ·Ό κ°λ₯
heap ( n1=1, m2())
staticμ΄ μ μ ν λͺ¨λ κ²
heapλΌλ¦¬λ κ°μ scopeμ¬μ μ κ·Όμ΄ κ°λ₯
λ©μλμ μ€νμ heap
stack (n5=10)
λ©μλμ λ΄λΆκ° μ μ₯λ§ λ¨
μΈλΆ μ κ·Ό λΆκ°λ₯
λ°μ΄ν°λ₯Ό μ μ₯νλ κ²κ³Ό μ°Ύμ μ€ννλ μμΉκ° λ€λ¦
Share article