프로세스정의실행 중인 프로그램을 말합니다시스템 리소스 (CPU , 메모리, I/O 장치 등) 와 데이터를 독립적으로 보유한 작업 단위임프로세스는 각각 독립적인 메모리 공간을 가집니다.스레드정의프로세스 내에서 실행되는 흐름의 단위입니다프로세스 내부의 코드, 데이터 및 시스템 리소스를 공유합니다스레드는 스택만 독립적으로 가지며, 나머지 힙, 정적 영역은 같은 프로세스 내의 다른 스레드와 공유합니다멀티프로세스 vs 멀티 스레드멀티프로세스각 프로세스는 독립적인 T 메모리를 가진다.프로세스 간 메모리 공간을 직접 공유 불가능.메모리 사용량이 큼멀티스레드모든 스레드는 같은 메모리 공간을 공유하며, 스택만 분리스태택 영역, 힙 영역은 모든 스레드에 의해 공유메모리 사용량이 멀티프로세스에 비해 적음.웹 프로그래밍에서의..
public class Start5 { static int share; // 3번째 까지 public static void main(String[] args) { //4번째줄 share = 55; // 5 int k = fun(5, 7);//6번째 System.out.println(share); } private static int fun(int m, int p) { share = m + p; return m - p; } }3번줄 까지의 T 메모리share 변수는 static 키워드가 붙어 있다그러므로, T 메모리상 스태틱 영역의 변수 공간이 할당됨.4번 main 메서드 중괄호 여는 경우중괄호를 만나자마자 main 스택 프레임이 스택메모리 공간에 쌓이게 된다.또한 인자인 args 를 main 스택 프레임..
public class Start4 { public static void main(String[] args) { int k = 5; int m; m = square(k); } private static int square(int k) { int result; k = 25; result = k; return result; } }int m ; 까지의 T 메모리 구조square 메서드의 실행12번째줄 수행private static int square(int k) { int result; k = 25;메서드 반환값 result 반환result = k; return result;
변수는 어디에나 존재할 수 있다.T 메모리에는 3개의 영역이 존재합니다.스태틱여기 있는 친구들은 클래스 멤버 변수JVM 이 종료시 까지 고정스택지역변수스택이 소멸시까지 존재힙객체 멤버 변수GC에 의해 정리될 때 까지 존재라고 일컫습니다 Uploaded by N2T
public class Start3 { public static void main(String[] args) { int i = 10; int k = 20; if (i == 10) { int m = k + 5; k = m; } else { int p = k + 10; k = p; } //int nn = m + p // m, p는 if문 안에서 선언된 변수이므로 사용 불가능 } }int k = 20 ; 까지 실행된 경우T 메모리 구조 ( 클래스 메타 데이터 적재 )main 메서드 실행 ⇒ 스택메모리 적재main 메서드이 args 인자가 main 프레임에 쌓인다.int i 가 10으로 초기화되며, (10 의 값을 상수풀에서 가져와서 i 에 10을 대입)if ( i == 10 )i == 10 은 true { :..
public class Start2 { public static void main(String[] args) { int i; i = 10; double d = 20.0; } }public static void main(String[] args) {{ 이후에 스택영역에 main 스택 프레임이 생성된다.args 라는 메서드 인자가 프레임에 로드된다.int i; 의 실행int i 는 4바이트 크기의 변수이다.main 메서드 안에서 선언되었기에, main 스택 프레임 안에서 args 위에 i 변수가 초기화되지 않은 상태로 적재됨.Q. 컴파일러는 i 를 선언만하고 초기화하지 않은 상태에서 i 변수를 사용하는 코드를 만나는 경우에는 자바 컴파일러(Javac) 는"The local variable i may not ..