查了一些资料也不是太明白两个的区别,但是前者是最安全的用法 打个简单的比方,你一个WEB程序,发布到Tomcat里面运行.首先是执行Tomcat org.apache.catalina.startup.Bootstrap类,这时候的类加载器是ClassLoader.getSystemClassLoader().而我们后面的WEB程序,里面的jar.resources都是由Tomcat内部来加载的,所以你在代码中动态加载jar.资源文件的时候,首先应该是使用Thread.currentThread…
查了一些资料也不是太明白两个的区别,但是前者是最安全的用法 打个简单的比方,你一个WEB程序,发布到Tomcat里面运行.首先是执行Tomcat org.apache.catalina.startup.Bootstrap类,这时候的类加载器是ClassLoader.getSystemClassLoader().而我们后面的WEB程序,里面的jar.resources都是由Tomcat内部来加载的,所以你在代码中动态加载jar.资源文件的时候,首先应该是使用Thread.currentThread…
Thread.currentThread().getContextClassLoader() and Class.getClassLoader()   一.同一工程中: String path = Thread.currentThread().getContextClassLoader().getResource(".").getPath(); System.out.println(path); String string = Sample1.class.getClassLoader(…
Class.forName() 和 ClassLoader.loadClass()的区别? Class.forName() 和 Class.forName().NewInstance()的区别? Class.forName("xx.xx")等同于Class.forName("xx.xx",true,CALLClass.class.getClassLoader()),第二个参数(bool)表示装载类的时候是否初始化该类,即调用类的静态块的语句及初始化静态成员变量. C…
Thread.currentThread().getContextClassLoader().getResourceAsStream 2014年04月02日 06:49:47 OkidoGreen 阅读数:28335更多 个人分类: 资源文件读取-JavaJava-知识   Java路径 Java中使用的路径,分为两种:绝对路径和相对路径.具体而言,又分为四种: 一.URI形式的绝对资源路径 如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aa…
一.正文: 有去看开源框架的童鞋,应该会经常看到如下代码:Thread.currentThread().getContextClassLoader().loadClass(className),那这个和Class.forName(className)有什么区别? 带着这个问题,笔者查了一些资料,现整理分享如下,如果不当之处还望斧正: 通常情况下,一个JVM中的所有类加载器被组织成一个层次结构,使得每一个类加载器(除了启动整个JVM的原始类加载器)都有一个父加载器.当被要求加载一个类时,每一个类加…
一,上代码 String.valueOf(Thread.currentThread().getContextClassLoader().getResource("")) file:/D:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp8/wtpwebapps/MVNFHM/WEB-INF/classes/ String path = (String.valueOf(Thread.currentThread().g…
   Class.getResourceAsStream() 会指定要加载的资源路径与当前类所在包的路径一致. 例如你写了一个MyTest类在包com.test.mycode 下,那么MyTest.class.getResourceAsStream("name") 会在com.test.mycode包下查找相应的资源. 如果这个name是以 '/' 开头的,那么就会从classpath的根路径下开始查找.     ClassLoader.getResourceAsStream()  无…
最近在看Java多线程这本书,但是发现里面有个概念自己搞不清楚.就是Thread.currentThread().getName() 和 this.getName() 以及 对象.getName()区别??? 首先要知道Thread类有9个构造方法,因为也是初学,所以只用到了2个构造方法.先列出待会需要用到的源代码. 1) 无参的构造方法, 注意里面的nextThreadNum()这个方法. 里面是一个静态的变量,没调用一次无参构造器,就执行++操作 2) 带有一个Runnable对象的构造方法…
currentThread的详解 currentThread方法是Thread类的一个静态方法,用来获取当前运行的代码段,正在被哪个线程调用.我们先来看一眼源码. 是一个native方法.直接与系统层面做交互. 下面看一段代码 public static void main(String[] args) { String name = Thread.currentThread().getName(); System.out.println(name); } 输出的结果为main. 为什么为mai…