Java教程

Java 中的Class.getClassLoader

本文主要是介绍Java 中的Class.getClassLoader,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在了解Class.getClassLoader之前先看一下获取类的class的三种方式反射机制获取类有三种方法,我们来获取Person类型  
 
第一种方式:    
  Class c1 = Class.forName("com.kimit.domain.Person");
第二种方式:
  // java中每个类型都有class 属性.    
  Class c2 = Person.class;
第三种方式:
  // java语言中任何一个java对象都有getClass 方法    c3是运行时类 (p的运行时类是Person)
  Person p = new Person();   
  Class c3 = p.getClass(); 
public class JdbcPool implements IPool {   
   private static String jdbcDriver;
    private static String jdbcUrl;
    private static String username;
    private static String password;
    //初始化连接数
    private static Integer initConnectCount;
    //最大连接数
    private static Integer maxConnects;
    //当连接不够时自动增长的数
    private static Integer incrementCount;
    //因为Vector是线程安全的,所以暂时选择它
    private static Vector<PoolConnection> connections = new Vector<>();
    InputStream is1 = JdbcPool.class.getClassLoader().getResourceAsStream("jdbc.properties");
}


jdbcDriver = com.mysql.jdbc.Driver
jdbcUrl = jdbc:mysql://localhost:3306/test?userUnicode=true&useSSL=false&charterEncoding=UTF8
username = root
password = 123456
initConnectCount = 20
maxConnectCount = 100
incrementCount = 3

当读取一个jdbc.properties文件时,需要把他加载到对象里,但是此时连接池的实现类的对象还没有创建,这时候就需要通过反射来获取;
首先我使用类名.class的方式获取类的class
InputStream is1 = JdbcPool.class.getClassLoader().getResourceAsStream("jdbc.properties")
但是我们都知道java程序写好以后是以.java(文本文件)的文件存在磁盘上,然后,我们通过(bin/javac.exe)编译命令把.java文件编译成.class文件(字节码文件),并存在磁盘上。但是程序要运行,首先一定要把.class文件加载到JVM内存中才能使用的,我们所讲的classLoader,就是负责把磁盘上的.class文件加载到JVM内存中,

                    
这篇关于Java 中的Class.getClassLoader的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!