찾다
JavaJava베이스Java 반사 메커니즘의 원리는 무엇입니까

Java 반사 메커니즘의 원리는 무엇입니까

Oct 23, 2020 am 11:04 AM
java반사 메커니즘

Java 리플렉션 메커니즘의 원리: 1. 모든 클래스에 대해 이 클래스의 모든 속성과 메서드를 알 수 있으며, 모든 개체에 대해 해당 메서드를 호출할 수 있습니다. 2. 모든 것이 개체이고 클래스도 마찬가지입니다. 3. [Animal.class]가 하드디스크에 있을 때, 메모리에 로드되면 객체로 간주될 수 있습니다.

Java 반사 메커니즘의 원리는 무엇입니까

Java 리플렉션 메커니즘의 원리:

1. 리플렉션 메커니즘의 개념:

은 실행 상태에서 모든 클래스에 대해 이 클래스의 모든 속성과 메서드를 알 수 있음을 의미합니다. 모든 클래스에 대해 객체는 해당 메소드 중 하나를 호출할 수 있습니다. 동적으로 정보를 얻고 객체 메소드를 동적으로 호출하는 기능을 Java 언어의 반사 메커니즘이라고 합니다.

2. 반사 메커니즘의 적용:

동적 에이전트 생성 슬라이싱 프로그래밍(메서드 호출 전후에 스택 프레임 추가)

3. 반사 메커니즘의 원리:

1 우선, 명확한 개념: 모든 것이 객체입니다. 클래스도 객체입니다.

2. 그러면 클래스의 내용을 알아보세요: 수정자 생성자 필드 방법.

3. 둘째, 로딩을 이해하세요: Animal.class가 하드 디스크에 있을 때 메모리에 로드되면 파일이 될 수 있습니다. java.lang이라는 객체로 간주됩니다. 클래스의 객체

프로그램을 실행하면 인스턴스화 중에 Animal.class 객체가 생성됩니다. 이 두 객체의 차이점은 무엇인가요?

아래와 같이 Animal.class 위의 객체는 java.lang.class의 객체입니다. 객체는 Animal.class

Java 반사 메커니즘의 원리는 무엇입니까

4를 인스턴스화하여 생성된 객체입니다. JVM은 어떻게 식별합니까? Animal.class에 포함된 메소드, 멤버 변수, 생성자 등?

아래와 같이 Animal.class 인스턴스화 객체의 멤버 변수는 fur color = red입니다.

메모리에 로드되면 fur color = null,

Java 반사 메커니즘의 원리는 무엇입니까

Animal.class 코트 색상의 속성은 java.lang.class의 필드 속성 값이며, 코트 색상도 java.lang의 객체입니다. .class.Reflection 메커니즘이 동적으로 정보를 획득하고 객체 메소드를 동적으로 호출하는 이유이기도 합니다.

아래 그림은 Java.lang.class의 메소드입니다.

Java 반사 메커니즘의 원리는 무엇입니까

Java 반사 메커니즘의 원리는 무엇입니까Java.lang의 메소드입니다. .class, 코트 색상은 Field의 속성 값이며 Animal, Modifiers의 모든 메소드, 멤버 변수 및 생성자는 java.lang.class의 표준에 따라 작성됩니다. 그렇지 않으면 컴파일 중에 오류가 보고됩니다

Java 반사 메커니즘의 원리는 무엇입니까

4. 방사선 메커니즘의 간단한 예제 코드

public class _14_ReflectTest07
{
     public static void main(String[] args) throws Exception{
         //1.获取类
         Class c = Class.forName("_12_CustomerService");
         //获取某个特定的方法
         //通过:方法名+形参列表
         Method m = c.getDeclaredMethod("login",String.class,String.class);
         //通过反射机制执行login方法.
         Object o = c.newInstance();
         //调用o对象的m方法,传递"admin""123"参数,方法的执行结果是retValue
         Object retValue = m.invoke(o, "admin","123");
         System.out.println(retValue); //true
     }
}
 
 
 
public class _12_CustomerService
{
     //登录
     public boolean login(String name,String pwd){
         if("admin".equals(name) && "123".equals(pwd)){
              return true;
         }
         return false;
     }
     //退出
     public void logout(){
         System.out.println("系统已安全退出!");
     }
}

Java 반사 메커니즘의 원리는 무엇입니까

관련 학습 권장 사항:

java 기본 튜토리얼

위 내용은 Java 반사 메커니즘의 원리는 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.