용어정리

2022. 4. 22. 18:06 JAVA/Java

플렉션(Reflection)
    로딩이 완료된 클래스에서 또 다른 클래스를 동적으로 로딩(Dynamic Loading)하여 사용하는것.
    Class.forName("클래스이름").newInstance

인터프리터(interpreter)
    자바 컴파일러에 의해 변환된 자바 바이트 코드(.class)를 읽고 해석하는 역할

클래스 로더(Class Loader)
    동적으로 클래스를 로딩해주는 역할

JIT 컴파일러(Just-In-time compiler)
    프로그램이 실행중인 런타임에 실제 기계어로 변환해주는 컴파일러
    동적 번역(Dynamic Translation)이라고도 불리며, 프로그램 실행 속도를 향상시키기 위해 개발됨
    자바 컴파일러가 생성한 자바 바이트 코드를 런타임에 기계어로 변환하는데 사용

JVM 실행 과정
    OS로 부터 메모리를 할당 받음
    자바 컴파일러(javac)가 자바코드(.java)를 읽어 바이트코드(.class)로 변환
    변환된 Class 파일들을 Class Loader를 통해 JVM 메모리영역(Runtime Data Areas) 영역으로 로딩
    로딩된 Class 파일들은 Execution engine을 통해 해석
    해석된 바이트 코드는 Runtime Data Areas에 배치되어 수행
    수행 과정 중 필요에 따라 Tread Synchronization, GC 같은 관리 작업 수행

참조(Reference)
    .get() // return Object

primitive 타입
    값을 복사하여 사용한다.


reference 타입
    객체를 공유(공유참조)하므로, 객체내 값을 복사하여 사용하도록 해야한다.
    SET 이 필요한 경우 객체 전체를 새로 만들자

동일성 비교
    인스턴스의 참조 값을 비교(==)


동등성 비교
    인스턴스의 값을 비교 (equals())

불변객체
    생성 시점 이후 값을 변경할 수 없는 객체
    생성자로만 값을 설정하고, 수정자를 만들지 않음
    참고 : Integer, String



출처: https://lovon.tistory.com/88?category=862726 [Java 개발 블로그]