[자바 기반 다 지기](4)자바 반사 체 제 를 훑 는 데 시간 이 좀 걸 립 니 다.

6247 단어 #----Java기초
글 목록
  • 반사 란 무엇 입 니까?
  • 은 어디에서 반사 메커니즘 을 사용 합 니까?
  • 대상 의 서열 화 는 무엇 입 니까?반 서열 화 는 무엇 입 니까?대상 의 서열 화 를 실현 하려 면 어떤 일 을 해 야 합 니까?
  • 반사 메커니즘 의 장단 점?(!)
  • 동적 대 리 는 무엇 입 니까?어떤 응용 프로그램 이 있 습 니까?
  • 어떻게 동적 대 리 를 실현 합 니까?
  • 자바 반사 메커니즘 의 역할
  • 자바 의 반 사 를 어떻게 사용 합 니까?


  • 앞에서 말 했 듯 이 자바 SE 를 공부 하면 서 자바-반사 체 제 를 정리 했다.이것 은 자바 에서 매우 중요 한 지식 이다.면접 과 개발 에서 도 자주 접 할 수 있다.면접 관 에 게 매 달 린 찌꺼기 로 서 외 롭 고 견 디 기 어 려 운 밤 에 마음 을 가 라 앉 히 고 시 리 즈 를 쓰기 로 결정 했다.어린이 들 이 기 초 를 다 지 는 데 도움 을 주 고 쉬 운 것 에서 어 려 운 것 까지흉악 한 면접 관 을 매달다.
    반사 란 무엇 입 니까?
    반 사 는 운행 상태 에서 임의의 종류 에 대해 이 종류의 모든 속성 과 방법 을 알 수 있다.임의의 대상 에 대해 서 는 임의의 방법 과 속성 을 호출 할 수 있 습 니 다.이러한 동적 으로 얻 은 정보 와 동적 호출 대상 의 방법 을 자바 언어의 반사 메커니즘 이 라 고 한다.
    반사 메커니즘 은 어디 에 쓰 입 니까?
    JDBC 에 서 는 데이터베이스 드라이버 를 반사 동 태 를 이용 해 불 러 왔 다.웹 서버 에 서 는 Sevlet 의 서비스 방법 을 반사 적 으로 호출 했다.Eclispe 등 개발 도 구 는 반사 동적 으로 대상 의 유형 과 구 조 를 분석 하고 동적 으로 대상 의 속성 과 방법 을 제시 합 니 다.많은 프레임 워 크 는 반사 메커니즘,주입 속성,호출 방법,예 를 들 어 Spring 을 사용한다.
    대상 서열 화 란 무엇 입 니까?반 서열 화 는 무엇 입 니까?대상 서열 화 를 실현 하려 면 어떤 일 을 해 야 합 니까?
    대상 직렬 화:대상 의 데 이 터 를 바이트 시퀀스 로 인 코딩 하 는 과정.serializable 인 터 페 이 스 를 실현 하 다.역 직렬 화:대상 의 인 코딩 바이트 를 다시 디 코딩 대상 으로 하 는 과정.
    JAVA 는 API 가 대상 의 직렬 화 와 역 직렬 화 를 실현 하 는 기능 을 제공 합 니 다.이 API 를 사용 할 때 다음 과 같은 약속 을 지 켜 야 합 니 다.
  • 직렬 화 된 대상 유형 은 직렬 화 인터페이스 serializable 을 실현 해 야 한다.이 인 터 페 이 스 는 표지 인터페이스 로 추상 적 인 방법 을 밝 히 지 않 았 다.JAVA 컴 파일 러 는 이 인 터 페 이 스 를 식별 하고 자동 으로 직렬 화 와 반 직렬 화 방법 을 추가 해 야 한다.
  • 은 직렬 화 과정의 안정 을 유지 하기 위해 클래스 에 직렬 화 버 전 번 호 를 추가 하 는 것 을 권장 합 니 다.
  • 필드 를 하 드 디스크 에 두 고 싶 지 않 으 면 transient
  • 을 추가 합 니 다.
    다음 경우 자바 직렬 화 를 사용 해 야 합 니 다.
  • 메모리 의 대상 상 태 를 파일(io 흐름)이나 데이터베이스 에 저장 하려 고 할 때;
  • 소켓(socket)으로 네트워크 에서 대상 을 전송 하려 고 할 때;
  • RMI(원 격 방법 호출)를 통 해 대상 을 전송 하려 고 할 때.

  • 반사 메커니즘 의 장단 점?(!)
    장점:동적 으로 실행 할 수 있 고 운영 기간 에 업무 기능 의 동적 집행 방법,방문 속성 에 따라 자바 의 유연성 을 최대한 발휘 했다.단점:성능 에 영향 을 줍 니 다.이런 조작 은 자바 코드 를 직접 실행 하 는 것 보다 느 립 니 다.
    동적 에이전트 가 뭐 예요?어떤 응용 프로그램 이 있 습 니까?
    동적 에이 전 트 는 실행 시 동적 생 성 에이전트 클래스(에이전트 방법)입 니 다.동적 에이전트 의 응용 은 Spring AOP 데이터 조회,테스트 프레임 의 백 엔 드 mock,rpc,자바 주석 대상 획득 등 이 있 습 니 다.
    어떻게 동적 대 리 를 실현 합 니까?
    JDK 원생 동적 에이전트 와 cglib 동적 에이전트(알 아야 함).JDK 원생 동적 대 리 는 인 터 페 이 스 를 바탕 으로 이 루어 졌 고 cglib 는 현재 클래스 를 계승 하 는 하위 클래스 를 바탕 으로 이 루어 졌 다.
    자바 반사 메커니즘 의 역할
  • 운행 시 임의의 대상 이 속 한 클래스 를 판단 합 니 다(중요 합 니 다!)
  • 운행 시 임 의 유형 을 구성 하 는 대상
  • 이 실 행 될 때 임의의 클래스 가 가지 고 있 는 구성원 변수 와 방법 을 판단 합 니 다
  • 실행 시 임의의 대상 을 호출 하 는 방법
  • 어떻게 자바 의 반 사 를 사용 합 니까?
                  
    Class.forName(“    ”);   :com.mysql.jdbc.Driver Driver        jvm ,               
      .class;   Class<> clz   
      .getClass();new     
    Clazz.getConstructor([String.class]);
    Con.newInstance([  ]);
      class          (    new  ()     )
    Cls.newInstance();
      class          
    Field c=cls.getFields():           (public)   ,        。
    Field c=cls.getDeclaredFields():             ,   public、private proteced,            
      class          
    Cls.getMethod(“   ”,class……parameaType);(       )
    Cls.getDeclareMethod(“   ”);(         ,      )
    M.setAccessible(true);(          )
         
    1. Method.invoke(obj    ,obj    );-----(      )
    

    좋은 웹페이지 즐겨찾기