java类加载器

阅读更多

1 java -verbose

verbose可以显示出JVM详细的类加载,也就是说:显示在命令执行的过程中,JVM都依次加载哪里Class,通过这些宝贵的调试信息,可以帮助我们分析出JVM在执行的过程中都干了些什么。

  参考文章:   http://www.iteye.com/article/68170?page=1#comments

 2. 动态加载类

java 代码
  1. package ttitfly;   
  2. /**  
  3.  * 加载类的方式有2种,一种是隐式方式:通过new出来一个对象加载  
  4.  * 另一种是:显式的( 由 java.lang.Class的forName()方法加载 或 由 java.lang.ClassLoader的loadClass()方法加载)  
  5.  */  
  6. public class ClassLoadTest {   
  7.        
  8.      public static void main(String[] args){   
  9.          try{   
  10.              //显式的加载,通过java.lang.Class的forName()方法加载   
  11.              System.out.println("准备载入类");     
  12.              Class clazz1 = Class.forName("ttitfly.A");   
  13.              A a1 = (A)clazz1.newInstance();   
  14.              a1.print();   
  15.                 
  16.                 
  17.              //显式的加载,由 java.lang.ClassLoader的loadClass()方法加载    
  18.              ClassLoadTest test = new ClassLoadTest();   
  19.              System.out.println("准备载入类");     
  20.              ClassLoader classLoader = test.getClass().getClassLoader();//必须先构造一个 ClassLoader对象出来   
  21.              Class clazz2 = classLoader.loadClass("ttitfly.A");    
  22.              A a2 = (A)clazz2.newInstance();   
  23.              a2.print();   
  24.                 
  25.                 
  26.          }catch(Exception e){   
  27.              e.printStackTrace();   
  28.          }   
  29.      }   
  30.         
  31.        
  32. }   
  33.   
  34. class A {   
  35.     public  void print(){   
  36.         System.out.println("test a");   
  37.     }   
  38. }   

 

 

 

  • java类加载器_第1张图片
  • 大小: 13.5 KB
  • 查看图片附件

你可能感兴趣的:(Java,JVM)