이번 주 회고는 크게 Java 영역과 알고리즘(파이썬) 강의, Spring 프레임워크 영역으로 나뉠 것 같다.
Stream<Integer>
를 반환받아 toArray시 Object[]를 반환 받는다.정적
이라는 뜻을 지닌다. 정의
: OS에 종속받지 않고 Java를 인식, 실행하기 위한 가상 기계(컴퓨터) 사진 참조.
JVM 구성요소
클래스 로더
: JVM 내로 클래스 파일(*.class
)을 로드하고 링크를 통해 배치하는 작업을 수행하는 모듈. 런타임 시 동적으로 클래스를 로드하고 jar 파일 내 저장된 클래스들을 JVM 위에 탑재한다. (.class 파일은 .java 파일이 자바 컴파일러(javac.exe)
에 의해 Java bytecode로 변환된 파일이다. bytecode는 JVM이 이해할 수 있는 자바소스코드이다.)실행 엔진
: .class 파일을 실행시키는 역할을 수행한다. 즉, 클래스 로더가 JVM 내 런타임 영역에 바이트 코드를 배치시키고, 실행엔진은 이를 실행하는 것.인터프리터
: 실행 엔진은 자바 바이트코드를 명령어 단위로 읽어서 실행한다.JIT(Just-In-Time)
: 인터프리터 방식으로 실행하다가 적절한 시점에 바이트 코드 전체를 컴파일하여 기계어로 변경한다.Garbage Collector
: 더이상 사용되지 않는 인스턴스를 찾아 메모리에서 삭제한다.Runtime Data Area
: 프로그램을 수행하기 위해 OS에서 할당받은 메모리 공간JDK
: Java Development Kit, Java를 사용하기 위해 필요한 모든 기능을 갖춘 Java용 SDK(Software Development Kit). JDK는 JRE를 포함하며 컴파일러(javac), jdb, javadoc
과 같은 도구도 포함한다.JRE
: Java Runtime Environment, JVM + 자바 클래스 라이브러리
등으로 구성되어 있다. 컴파일된 Java 프로그램을 실행하는 데 필요한 패키지!