今天我遇到的一个面试题为
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下
相关推荐
本压缩包“CC++mianshi.rar”提供了丰富的C++面试题集,旨在帮助求职者或自我提升者准备面试,了解可能遇到的问题类型及答案。 首先,C++面试题集通常会涵盖以下几个方面: 1. **基础语法**:包括变量、数据类型、...
文件包含了简介.txt、编程语言_Go_面试题_学习指南和golangFamily-main三个部分,其中简介.txt可能提供了该文件集合的概览和学习重点,编程语言_Go_面试题_学习指南是专门针对Go语言在操作系统领域的面试题和学习...
C#_面试题_总结_2,希望对大家有所帮助。
本文对C/C++程序员应聘的常见面试题进行了深入剖析
最后,"backend-interview-master" 这一文件夹可能包含了与面试相关的各种资料,例如常见面试题、面试题解析、知识点总结等,对求职者准备Go语言后端开发职位的面试具有较高的参考价值。 在深入探索"后端开发_Go...
面试时,对于C语言的掌握程度往往成为评估程序员能力的重要标准。以下是对标题、描述及标签所涉及知识点的详细说明: 1. **基本语法**:C语言的基础包括变量、数据类型(如int、char、float等)、运算符(算术、...
这份“编程语言_Golang_面试题合集_学习成长_1741356734.zip”资料,无疑是对那些渴望掌握Go语言并希望在面试中展示自己的技术能力的开发者来说,一份极具价值的学习资源。该资源的标签“学习资料”表明其定位是为...
iOS面试题收集,用于准备面试,复习面试题~_面试题都是套路_iOSFace2Face
01_面试题.md
1_面试题.zip
2_面试题和答案
1_面试题.md
04_作用域_面试题.html
06_面试题.html
最新_互联网公司招聘_笔试_开发_经典C_C_面试题.pdf
为了帮助求职者更好地准备面试,市场上涌现了大量的面试准备材料,其中《剑指Offer》就是一份知名的材料,它收录了大量经典的面试题,从基础到高级,覆盖了数据结构与算法的多个方面。 在本压缩包文件中,包含了...
04_作用域_面试题2.html
前端开发_面试题集_VitePress_知识分享网站__1744167576
1_面试题v1.0.0.md