자바 애플리케이션 실행 과정
- 컴파일러가 자바 소스를 바이트 코드로 변환
- Class Loader가 바이트 코드를 런타임 데이터 영역에 로드
- 로딩된 바이트 코드가 실행 엔진에 의해 실행
자바 메모리 구조
공통
- Method Area
- 클래스 별로 전역변수, 정적 변수, 메소드 정보들이 저장
- Heap Area
- 런타임중에 생성되는 객체들이 동적으로 할당
스레드 별
- JVM Stack Area
- 호출된 메소드의 매개변수, 지역변수, 리턴정보들이 저장
- PC Register
- 현재 수행중인 JVM 명령어
- Native Method Stack
- 자바 외의 언어인 C나 C++같은 것들을 수행하기 위한 영역
가비지 컬렉션
- JVM에서 메모리 관리해주는 모듈
- 잠깐 멈춘 다음에 참조되지 않는 객체를 삭제 > Mark and Sweep
객체지향 프로그래밍
- 현실 세계의 사물같은 객체를 만들고 객체에서 필요한 특징을 뽑아 프로그래밍 수행
- 4가지 특징
- 추상화
- 캡슐화
- 상속성
- 다형성
- 오버로딩과 유사
추상클래스 vs 인터페이스
추상클래스 | 인터페이스 |
abstract로 지시자로 정의 | interface 지시자로 정의 |
추상메소드가 하나 이상 포함 | 모든 메소드가 추상 메소드 |
상속을 위함 부모의 메소드를 재사용+확장하기 위해 사용 |
보장을 위함 모두 같은 동작을 할 수 있다라는 것을 보장 |
'CS' 카테고리의 다른 글
리눅스 (5) | 2024.11.05 |
---|---|
정리 - SPRING (1) | 2024.10.30 |
정리 - 데이터 베이스 (1) | 2024.10.30 |
정리 - 네트워크 (0) | 2024.10.30 |
정리 - 자료 구조 (0) | 2024.10.30 |