25.java반사면접문제

1699 단어 java 면접 문제
1. 자바 반사 메커니즘의 역할
 1) 
 2) 
 3) 
 4) 

반사란 동적 로드 대상을 분석하고 분석하는 것이다.운행 상태에서 임의의 클래스에 대해 이 클래스의 모든 속성과 방법을 알 수 있다.임의의 대상에 대해 임의의 방법을 호출할 수 있다. 이런 동적 정보 얻기와 동적 호출 대상 방법의 기능은 자바 반사 메커니즘이 된다.
장점: 동적 창설 대상과 컴파일을 할 수 있고 자바의 유연성을 최대한 발휘할 수 있다.
단점: 성능에 영향을 미친다.반사를 사용하는 것은 기본적으로 일종의 해석 조작으로 JVM에게 우리가 무엇을 해야 하고 우리의 요구를 만족시켜야 하는지 알려준다. 이런 조작은 자바 코드를 직접 실행하는 것보다 느리다.
2. 자바의 반사를 어떻게 사용합니까?
a. 전체 클래스 이름으로 대상을 만듭니다.
   1)、Class.forName("전체 클래스 이름");예: com.mysql.jdbc.Driver Driver 클래스가 jvm에 로드되었으며 클래스 초기화 작업을 완료하면 됩니다.
2)、유명.class; Class clz 객체 가져오기
3), 대상.getClass();   
b. 구조기 대상을 가져오고 구조기를 통해 대상을 new 출력합니다
    1). Clazz.getConstructor([String.class]);
    2). Con.newInstance([매개 변수]);
c.class 대상을 통해 실례 대상을 만듭니다. (new 클래스 이름 ()과 같은 구조자가 없습니다.)
     1). Clazz.newInstance();
d. class 대상을 통해 속성 대상을 획득합니다
1)、Field c
=clz.
getFields (): 부모 클래스의 필드를 포함한 모든 공공 (public) 필드를 가져옵니다. 
    2)、Field c=clz.getDeclaredFields (): 어떤 클래스의 모든 성명을 얻을 수 있는 필드입니다.public,private,proteced를 포함하지만, 부모 클래스의 설명 필드는 포함되지 않습니다.
e. e.class 대상을 통해 방법 대상을 얻다
   1). Clazz.getMethod(방법명,class....parameaType);(공용만 제공)
   2). Clazz.getDeclareMethod(메소드 이름);(임의로 수식하는 방법을 얻으면 사유를 실행할 수 없습니다.)
   3) M.setAccessible(true);(사적인 방법으로 실행할 수 있도록)
f. 메소드 실행
   1). Method.invoke(obj 인스턴스 객체, obj 가변 매개 변수), -----(반환 값이 있음)
******필요하면 잠자리FM 검색"java 면접문제"청취 오디오 면접문제******

좋은 웹페이지 즐겨찾기