자바 클래스 로 딩 에 관 한 면접 문제

2922 단어 자바 기반
이 면접 문 제 는 자바 가 클래스 를 불 러 올 때 준비 단계 가 있 습 니 다.준비 단 계 는 클래스 의 정적 구성원 변수 에 자바 기본 값 을 부여 합 니 다.
클래스 의 초기 화 단계 에 이 르 러 서 야 클래스 의 정적 구성원 변수 에 프로그래머 가 준 값 을 부여 할 수 있 습 니 다.
package nine4one;

/**
 * java                 
 * 1.   System.exit();  ,0     
 * 2.        
 * 3.                      
 * 4.             java       
 * -------------------------
 *     、      
 * 1.  :            
 * 2.  :
 *  -  :           ;
 *  -  :           ,          
 *  -  :               
 * 3.   :               
 * 
 * --------------------------
 * java              :
 * 1.    
 *  -      
 *  -             ,           
 *  -        
 *  -  , :Class.forName("");
 *  -         
 *  -java               
 * 2.    
 *    java               java  “      ” ,      。
 * 
 * ----------------------------
 *           .class               ,               ,   
 *       java.lang.Class  ,               。
 * 
 * ---------------------------
 *   class     
 * -          v
 * -      .class  
 * - zip,jar        .class  
 * -         .class  
 * - java        .class  
 * 
 * ----------------------------
 *                 Class  
 * Class                ,   java                    
 * 
 * ----------------------------
 *           
 * -java         
 * 		     (Bootstrap),c++  
 * 		      (Extension),java  
 * 		      (System)       ,java  
 * -         
 * 		java.lang.ClassLoader   
 * 		             
 *               “      ”     
 * ----------------------------------------
 * jvm                          ,  
 *             .class         ,       
 *                 ,(LinkageError  )
 * 
 *                 ,             
 * 
 *     :
 * 	-             
 * 	-    
 * 	-     
 *  -         
 * 	     ,       。                    
 *               。
 * -----------------------------------------
 *     :
 *       ,java              ,         。
 *     :
 * 	     ,java                         。
 *      :
 * 	      ,java            ,            ,
 *。    ,             :1,            ;2, 
 *         。
 *
 * 
 * 
 * @author 180719-2
 *
 */
public class Singleton {

	
	//private static Singleton singleton = new Singleton();
	public static int count1;
	public static int count2 = 0;
	private static Singleton singleton = new Singleton();
	
	public Singleton(){
		count1++;
		count2++;
	}
	
	public static Singleton getInstance(){
		return singleton;
	}
}


package nine4one;

public class Test{
	public static void main(String[] args) throws Exception{
		Singleton singleton = Singleton.getInstance();
		System.out.println("count1 = " + singleton.count1);
		System.out.println("count2 = " + singleton.count2);
		
		
//		Class clazz = Class.forName("java.lang.String");
//		System.out.println(clazz.getClassLoader());
//		
//		Class clazz2 = Class.forName("eightsix2.CglibProxyFactory");
//		System.out.println(clazz2.getClassLoader());
	}
}

좋은 웹페이지 즐겨찾기