자바 애플리케이션 실행 과정

  1. 컴파일러가 자바 소스를 바이트 코드로 변환
  2. Class Loader가 바이트 코드를 런타임 데이터 영역에 로드
  3. 로딩된 바이트 코드가 실행 엔진에 의해 실행

자바 메모리 구조

공통

  • Method Area
    • 클래스 별로 전역변수, 정적 변수, 메소드 정보들이 저장
  • Heap Area
    • 런타임중에 생성되는 객체들이 동적으로 할당

스레드 별

  • JVM Stack Area
    • 호출된 메소드의 매개변수, 지역변수, 리턴정보들이 저장
  • PC Register
    • 현재 수행중인 JVM 명령어
  • Native Method Stack
    • 자바 외의 언어인 C나 C++같은 것들을 수행하기 위한 영역

가비지 컬렉션

  • JVM에서 메모리 관리해주는 모듈
  • 잠깐 멈춘 다음에 참조되지 않는 객체를 삭제 > Mark and Sweep

객체지향 프로그래밍

  • 현실 세계의 사물같은 객체를 만들고 객체에서 필요한 특징을 뽑아 프로그래밍 수행
  • 4가지 특징
    • 추상화
    • 캡슐화
    • 상속성
    • 다형성
      • 오버로딩과 유사

추상클래스 vs 인터페이스

추상클래스 인터페이스
abstract로 지시자로 정의 interface 지시자로 정의
추상메소드가 하나 이상 포함 모든 메소드가 추상 메소드
상속을 위함
부모의 메소드를 재사용+확장하기 위해 사용
보장을 위함
모두 같은 동작을 할 수 있다라는 것을 보장

 

'CS' 카테고리의 다른 글

리눅스  (6) 2024.11.05
정리 - SPRING  (1) 2024.10.30
정리 - 데이터 베이스  (1) 2024.10.30
정리 - 네트워크  (0) 2024.10.30
정리 - 자료 구조  (0) 2024.10.30