자바 에서 Class 대상 에 대한 상세 한 설명 과 클래스 이름.class,class.forName(),getClass()의 차이 점
3169 단어 Class.forName
Class 대상 의 생 성 방식 은 다음 과 같 습 니 다.
1.클래스 이름.class 설명: JVM 은 클래스 로 더 를 사용 하여 클래스 를 메모리 에 불 러 옵 니 다(전 제 는 클래스 가 메모리 에 불 러 오지 않 았 음).클래스 초기 화 작업 을 하지 않 습 니 다.Class 의 대상 으로 돌아 갑 니 다.
2.Class.forName("클래스 이름 문자열") (주:클래스 이름 문자열 은 패키지 이름+클래스 이름) 설명:클래스 를 불 러 오고 클래스 의 정적 초기 화 를 하여 Class 의 대상 을 되 돌려 줍 니 다.
3.실례 대상.getClass() 설명:클래스 에 대해 정적 초기 화,비 정적 초기 화;인용 o 가 실 행 될 때 진정 으로 가리 키 는 대상(하위 대상 의 인용 은 부모 대상 의 인용 변수 에 부 여 될 수 있 기 때 문)에 속 하 는 클래스 의 대상 을 되 돌려 줍 니 다.
아래 절 차 를 통 해 클 라 스 대상 의 생 성 원 리 를 살 펴 보 자.
public class TestClass {
public static void main(String[] args)
{
try {
// .class
Class testTypeClass=TestClassType.class;
System.out.println("testTypeClass---"+testTypeClass);
// Class.forName()
Class testTypeForName=Class.forName("TestClassType");
System.out.println("testTypeForName---"+testTypeForName);
// Object.getClass()
TestClassType testTypeGetClass= new TestClassType();
System.out.println("testTypeGetClass---"+testTypeGetClass.getClass());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class TestClassType{
//
public TestClassType(){
System.out.println("---- ---");
}
//
static{
System.out.println("--- ---");
}
//
{
System.out.println("---- ---");
}
}
테스트 결 과 는 다음 과 같다.
testTypeClass---class TestClassType
정적 매개 변수 초기 화
testTypeForName---class TestClassType
-비 정적 매개 변수 초기 화-
구조 함수
testTypeGetClass---class TestClassType
결과 에 따라 세 가지 생 성 된 클 라 스 대상 이 같은 것 으로 나 타 났 다.또한 프로그램 은'정적 매개 변수 초기 화'를 한 번 만 인쇄 합 니 다.
정적 방법 속성 초기 화 는 클래스 를 불 러 올 때 초기 화 되 는 것 을 알 고 있 습 니 다.정적 방법 속성 이 초기 화 되 지 않 고 new 클래스 인 스 턴 스 대상 일 때 불 러 옵 니 다.
따라서 이 프로그램 은 세 가지 방식 으로 클 라 스 대상 을 생 성 하 는데 사실은 클 라 스 대상 이 하나 밖 에 없다 는 것 을 설명 한다.Class 대상 을 만 들 때 메모리 에 불 러 왔 는 지 여 부 를 먼저 판단 합 니 다.
그래서 클 라 스 대상 을 만 드 는 과정 은 다음 과 같다.
새로운 자바 클래스 를 만 들 때 JVM 은 클 라 스 대상 으로 컴 파일 하여 같은 이름 의 클 라 스 파일 에 저장 합 니 다.실행 할 때 이 클래스 의 대상 을 생 성 해 야 할 때 JVM 은 이러한 종류의 메모리 가 불 러 왔 는 지 확인 합 니 다.불 러 오지 않 으 면.class 파일 을 메모리 에 불 러 옵 니 다.불 러 오 면 class 파일 에 따라 인 스 턴 스 대상 을 생 성 합 니 다.