Class.forName( )、class.getClassLoader().getResourceAsStream、newInstance()

Class.forName(xxx.xx.xx)返回的是一个类。作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段

 mysql Driver 类中有注册驱动的静态方法,故

Class.forName("com.mysql.jdbc.Driver");

 可替换

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

newInstance( ) 使用类加载机制,每次都会调用默认构造函数,在初始化一个类时生成一个实例,所以生产的对象要是没有限制是多例的

class.getClassLoader().getResourceAsStream

class是指当前类的class对象,getClassLoader()是获取当前的类加载器。(转:https://blog.csdn.net/feeltouch/article/details/83796764)

什么是类加载器?就是用来加载java类的,类加载器负责把class文件加载进内存中,并创建一个java.lang.Class类的一个实例,也就是class对象,并且每个类的类加载器都不相同。getResourceAsStream(path)是用来获取资源的,而类加载器默认是从classPath下获取资源的,因为这下面有class文件吗,所以这段代码总的意思是通过类加载器在classPath目录下获取资源.并且是以流的形式

原文地址:https://www.cnblogs.com/listenerxx/p/14275849.html