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());  
        }  
    
    }
  • 相关阅读:
    怎么在一个线程结束后回到主线程?
    iOS KVC & KVO
    iOS添加到购物车的简单动画效果
    如何在键盘出现时滚动表格,以适应输入框的显示
    iOS开发之多媒体播放
    算法的时间复杂度(一)
    SPI通信
    三级管的原理
    stm32之595(spi芯片)
    stm32之Systick(系统时钟)
  • 原文地址:https://www.cnblogs.com/orientsun/p/2608560.html
Copyright © 2011-2022 走看看