zoukankan      html  css  js  c++  java
  • 对于纯Java项目,JVM 各个类加载器的加载目标是什么?

    Bootstrap Classloader:

    加载 JVM 自带的 jar 或 zip 文件,JRE\lib 目录下的 jar 包,但不包括 JRE\lib\ext 内的 jar 包,用System.getProperty("sun.boot.class.path") 可得到虚拟机搜索的包名。 

    Extension Classloader:

    加载位于 JRE\lib\ext 目录下的 jar 包,用 System. getProperty("java.ext.dirs”) 可得到虚拟机使用Extension 搜索的路径名。

    App/System Classloader:

    加载项目自身的类路径(bin)、系统环境变量的CLASSPATH、项目引用的外部第三方 jar 包(JDBC)。用 System.getProperty(“java.class.path”) 可得到虚拟机搜索类的路径和 jar 包。

    验证程序:

    public class TestClassLoader {
    
        public static void main(String[] args) throws Exception{  
            Properties p=System.getProperties();  
            Set<Object> s=p.keySet();  
            Iterator<Object> i=s.iterator();  
            while((i).hasNext()){  
                String key=(String)i.next();  
                if(key.contains("java.class.path")||key.contains("java.ext.dirs")||key.contains("sun.boot.class.path")) {
                      System.out.println(key+" === "+p.get(key)); 
    
                 }
            }  
            System.out.println("TestClassLoader === " + new TestClassLoader().getClass().getClassLoader());
            System.out.println("DNSNameService === " + new DNSNameService().getClass().getClassLoader());  
        }  
    
    }
  • 相关阅读:
    hibernate4.3.5,Final hibernate.cfg.xml的配置
    mysql 入门 jdbc
    设计模式之责任链
    淘宝技术这十年
    java代码---------计算器实现
    java代码---------打印正三角形
    java代码=====实现修改while()
    java------------break;
    java代码-----循环变量的
    java代码----------实现写出循环
  • 原文地址:https://www.cnblogs.com/orientsun/p/2608560.html
Copyright © 2011-2022 走看看