Java Reflection
Java Reflection
개념
: 자바의 소스코드를 컴파일러가 바이트 코드로 변환하고 클래스 로더가 이 바이트 코드를 읽어 Jvm 의 메모리영역에 저장을 합니다.
리플렉션이란 이 jvm 메모리 영역에 저장된 클래스의 정보를 꺼내 와서 필요한 정보들 생성자, 필드, 메서드들을 가져와 사용하는 기술입니다.
리플렉션이 제공하는 기능
: 클래스의 정보를 꺼내 와서 필요한 정보들 생성자, 필드, 메서드들을 조회
클래스란
: 실행중인 자바 어플리케이션의 클래스와 인터페이스의 정보를 가진 클래스이다.
프레임 워크나 라이브러리에서 객체에 기본생성자가 필요한 이유
: 기본 생성자로 객체를 생성하고 필드를 통해 값을 넣어주는 것이 가장 간단한 방법이기 때문입니다.
예를 들어서 생성자가 여러개라면 어떠한 생성자를 가져올 지 구분이 안갑니다. 또한 생성자에 로직이 있는 경우에는 원하는 값을 바로 넣어줄 수 없습니다.