今天我遇到的一个面试题为
Thread.currentThread().getContextClassLoader().loadClass(className);//不会调用类的static块代码
class.forName(className);//调用类的static块代码
package cn.hotbain; import java.io.InputStream; public class Echo2 { public static void main(String[] args) throws Exception{ //得到应用类加载器 ClassLoader loader=Thread.currentThread().getContextClassLoader().getParent(); System.out.println(loader); Thread.currentThread().getContextClassLoader().loadClass("cn.hotbain.Echo"); Thread.currentThread().setContextClassLoader(loader.getParent()); //forName()会造成类的初始化; //classLoader.loadClass("className");不会造成类的初始化 ClassLoader clazzLoader=Class.forName("cn.hotbain.Echo").getClassLoader(); System.out.println(clazzLoader); Thread.currentThread().getContextClassLoader().loadClass("cn.hotbain.Echo"); } private static void test4() throws Exception{ } private static void test3() throws Exception{ System.out.println("default thread class context loader is "+Thread.currentThread().getContextClassLoader().getClass().getName() ); ClassLoader classLoader=ClassLoader.getSystemClassLoader().getParent(); Thread.currentThread().setContextClassLoader(classLoader); System.out.println(Thread.currentThread().getContextClassLoader()); test2(); } private static void test2() throws Exception{ ClassLoader loader=Echo.class.getClassLoader(); System.out.println(loader); //如果是用类加载器加载resources的话,那么就会从指定的Loader的指定位置加载(例如:extLoader从ext加载resource) InputStream ins=loader.getResourceAsStream(".classpath"); ins.close(); new Thread(new Runnable() { @Override public void run() { System.out.println("当前线程启动的classLoader为"+Thread.currentThread().getContextClassLoader()); } }).start(); } private static void test1() throws Exception{ //如果文件路径是以/开头时,那么就会从绝对路径下读取文件。否则就会以相对路径的方式查找 InputStream ins =Echo2.class.getResourceAsStream("/note.txt"); System.out.println(ins); ins.close(); } }
在tomcat中每一个app都会对应一个加载器Loader1,但是其父加载器去都是同一个StandardClassLoader,当需要从tomcat的lib下分享共同的资源的时,需要将其放入到指定lib下。当需要在web-inf下访问资源时,需要将资源放到web-inf下
相关推荐
C++_面试题 C++_面试题 C++_面试题 C++_面试题
个人收藏的面试集锦: C++面试题集(最全的CC++试题集和答案) c与c++面试题汇总1 c与c++面试题汇总
c_面试题(非常详细).c_面试题(非常详细).c_面试题(非常详细).c_面试题(非常详细).
SQL_面试题2.txt SQL_面试题2.txt SQL_面试题2.txt SQL_面试题2.txt
C语言经典的面试题,可能在你面试程序员的时候用的着哦。
java和Javaweb_面试题大全
2019年最常见的_Python_面试题_&_答案.pdf
JAVA程序员面试的常用面试题讲解视频,非常到位
java面试题-外企软件工程师面试题大全,欢迎想到外企工作的人作为参考
本文对C/C++程序员应聘的常见面试题进行了深入剖析
企业真实.Net_面试题大全(有答案)
C_面试题(附有答案).C_面试题(附有答案).
Java_EE面试题集(修正版)Java_EE面试题集(修正版)Java_EE面试题集(修正版)Java_EE面试题集(修正版)Java_EE面试题集(修正版)Java_EE面试题集(修正版)Java_EE面试题集(修正版)Java_EE面试题集(修正版)Java_EE面试题集...
java_面试题笔记 希望能对你有用。谢谢。。
Angular高频面试题_20题.pdf_前端面试题
射频工程师面试题_40题.pdf射频工程师面试题_40题.pdf射频工程师面试题_40题.pdf射频工程师面试题_40题.pdf射频工程师面试题_40题.pdf射频工程师面试题_40题.pdf射频工程师面试题_40题.pdf射频工程师面试题_40题.pdf
C#_面试题_总结_2,希望对大家有所帮助。
小程序常见面试题_20题.pdf_前端面试题
这个是我从网上找来的各大公司的笔试面试题目哦,希望大家都能找到满意的工作!