하나는, 그 결과를 다음 코드를 실행
공용 클래스 ceshi { 공공 정적 무효 메인 (문자열 []에 args) { 푸 OBJ1 = 새로운 푸 (); 푸 obj2보다 = 새로운 푸 (); 에서 System.out.println (OBJ1 == obj2보다); } } 클래스 푸 { INT의 값 = 100 ; }
이 숫자는 두 변수의 비교 값 이라기보다는 두 개의 변수를 해결, 그래서 당신은 권리 결과가 없습니다.
이 잘못된 이유를 물어, 다음 코드를 실행
우리는 클래스가 초기화 한 다음에 오류가있을 것입니다 주요 기능을 초기화되어, 쉽게 얻을 수 있습니다.
3, 클래스 초기화 규칙
샷은 마지막 초기화 순서에 대한 정의, 초기화 모듈, 클래스 초기화, 모든 주제, 즉를, 부르는 경우 초기화가 발생
그 적용 범위 기준.
4
패키지 교사, 클래스 루트 { 정적 인 { 에서 System.out.println ( "루트 정적 초기화 블록" ); } { (에서 System.out.println "정상적인 초기화 블록 루트" ); } 공공 루트 () { System.out에. println 메소드 ( "루트 인수없이 생성자" ); } } 클래스 중간 는 연장 루트 { 정적 { 에서 System.out.println ( "중간 정적 초기화 블록" ) } { 에서 System.out.println ( "정상적인 초기화 미드 블록 " ); } 공공 중순는 () { 에서 System.out.println는 ( "미드 인수가없는 생성자" ); } 공공 미드 (문자열 MSG는) { // 다음은이가 같은 클래스 생성자 오버로드를 호출 은이 () System.out에 .println ( : + "파라미터 값있는 중간 생성자 매개 변수" ; MSG)는 } } 클래스 리프 (가) 확장 미드 { 정적 { 에서 System.out.println ( "리프 정적 초기화 블록" ) } { System.out에. println 메소드 ( "리프 정상적인 초기화 블록 ' ); } 공용 리프 () { // 슈퍼 호출 부모 클래스 생성자 매개 변수 문자열이 슈퍼 ( "자바 프리젠 테이션 초기화 순서를" ); 에서 System.out.println을 ( "잎이 생성자를 수행" ); } } 공용 클래스 ceshi을 { 공공 정적 무효 메인 (문자열 []에 args) { 새로운 새로운 리프 (); } }
결과는 다음과 같다 있습니다