Developing Myself Everyday
article thumbnail
Published 2023. 6. 11. 10:16
Reflection (리플렉션) Android/Java

리플렉션이란?


리플렉션은 자바의 기능 중 하나로, Runtime(실행 중)에 클래스의 정보를 동적으로 검사하고 조작할 수 있도록 한다. 리플렉션을 사용하면 클래스의 메서드, 필드, 생성자 등에 접근하고 호출할 수 있다.

 

리플렉션에 대해 이해하기 위해서는 JVM의 작동방식에 대해 이해할 필요가 있다. JVM은 클래스 로드시 Class Loader(클래스 로더)를 사용해 클래스에 대한 정보들을 저장한다. 이 때, 리플렉션에 사용되는 MetaData(메타데이터)를 Native Memory의 Metaspace(메타스페이스)에 저장한다.

 

 

리플렉션을 호출하는 시점에는 이미 해당 클래스의 로딩과 메타데이터 저장이 완료된 상태일 수 있다. 

 

정리하자면 리플렉션은 로딩된 클래스의 메타데이터를 활용하여 클래스의 정보를 동적으로 조작하는 기능을 제공한다.

 

Reference

 

[Java] 자바 메타스페이스(Metaspace)에 대해 알아보자.

Java Metaspace

jaemunbro.medium.com

 

'Android > Java' 카테고리의 다른 글

JVM과 커널의 동작  (0) 2023.06.26
JVM의 내부 구조와 작동  (0) 2023.06.10
JVM & JRE & JDK  (0) 2023.05.29
profile

Developing Myself Everyday

@배준형

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!