객체 지향 프로그래밍/Java 3

스레드 - 멀티 스레드와 멀티 프로세스 쉽게 구분하기

동시에 여러 작업을 처리하는 방법 1. 멀티 태스킹 멀티 태스킹이란 동시에 여러 가지 작업을 수행하는 것을 말합니다. 병렬로 일을 처리하는 것을 의미하죠. 이를 구현하기 위한 방식에는 두 가지 방식이 있습니다. 2. 멀티 스레드와 멀티 프로세스 멀티 스레드(Multi-Thread)는 하나의 프로그램이 여러 개의 작업을 수행하도록 합니다. 각 작업을 스레드(Thread)라고 하며 스레드는 동일한 자원을 공유합니다. 정확히는 Static 영역과 Heap 영역을 공유합니다. 스레드는 Stack영역을 서로 분할해서 사용합니다. 따라서 스레드간 Stack 영역을 접근할 수 없지만 Static영역과 Heap영역을 공유합니다. 우리는 Static 공간에 클래스의 멤버 변수(=전역변수, 필드, 속성, Property)..

Java 실행 과정과 메모리

자바가 실행되는 과정 1. JDK, JRE, JVM의 역할과 장점 JDK로 개발된 프로그램은 JRE에 의해 실행되고 가상 기계인 JVM 환경에서 구동됩니다. JDK는 소스 코드를 바이트코드로 바꿔줄 수 있는 javac.exe파일을 갖고 있습니다. JRE는 자바 프로그램을 실행할 수 있는 java.exe파일을 갖고 있습니다. 이런 구조는 컴퓨터 종류 및 OS가 서로 다르더라도 하나의 컴파일러로 실행할 수 있다는 장점이 됩니다. JDK, JRE, JVM이란 용어가 처음엔 무척 생소합니다. JDK는 자바 개발 도구로 Java Development Kit의 약자입니다. JRE는 자바 실행 환경으로 Java Runtime Environment의 약자입니다. JVM은 자바를 실행하는 가상 머신으로 Java Viru..

메모리 구조 - 스태틱, 스택, 힙 영역

코드 영역과 데이터 영역 메모리 공간은 코드 영역과 데이터 영역으로 분리됨 Static, Stack, Heap 영역 데이터 영역은 다시 Static, Stack, Heap영역으로 분리됨 Static 영역은 클래스가 저장되는 공간 클래스 멤버 변수가 할당되며 JVM이 종료될때까지 존재한다. Stack 영역은 메소드가 저장되는 공간 메소드로 넘겨 받은 매개변수, 메소드 안의 지역변수가 할당된다. Stack Frame이 소멸 시 지역 변수도 같이 소멸된다. Heap 영역은 객체가 저장되는 공간 객체 멤버 변수가 할당된다. 객체는 사용되지 않을 경우 가비지 컬렉터에 의해 소멸된다. 객체 소멸시 Heap에 저장된 객체 멤버 변수도 같이 소멸된다. 자바 코드 실행 과정 자바 실행 환경이 프로그램의 main() 메서..