[CS] JAVA

장다슬·2024년 4월 11일

CS 스터디

목록 보기
3/23

네트워크 상에서 쓸 수 있도록 미국의 썬 마이크로 시스템즈가 개발한 객체지향 프로그래밍 언어

특징

  • JVM 위에서 돌아가기 때문에 운영체제에 독립적이다.
  • 캡슐화, 상속, 다형성이 잘 적용된 객체지향 언어이다.
  • 가비지 콜렉터를 이용해 자동 메모리 관리가 가능하다.
  • 멀티쓰레드를 지원한다.
  • 필요한 시점에 클래스를 로딩하는 동적 로딩을 지원한다.

실행과정

  1. 프로그램 실행시 JVM은 운영체제로부터 해당 프로그램이 필요로 하는 메모리를 할당받고, 할당받은 메모리를 용도에 따라 여러 영역으로 나누어 관리함

  2. 자바 컴파일러(javac)가 자바 소스코드(.java)를 읽어들여 자바 바이트코드(.class)로 변환시킴

  3. 클래스로더(Class Loader)를 통해 클래스 파일들을 JVM으로 로딩

  4. 로딩된 클래스 파일들은 실행 엔진(Execution engine)을 통해 컴퓨터가 읽을 수 있는 기계어로 해석됨

  5. 해석된 바이트코드는 Runtime Data Areas(프로그램 수행을 위해 운영체제에서 할당받은 메모리 공간)에 배치되어 실질적인 수행이 이루어지게 됨. 이러한 실행과정 속에서 JVM은 필요에 따라 Thread Synchronization과 GC같은 관리작업을 수행함.


참고:
신입 개발자 기술면접 질문 정리 - 자바
[JAVA] 자바(JAVA)란? - 배워서 남주자 - 티스토리
[JAVA] 자바의 정의와 특징 및 SOLID

profile
반갑습니다

0개의 댓글