请教Class.forName()方法的使用? Class.forName()用来加载数据库驱动的如:使用jdbc-odbcClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ClassLoader负责在运行时查找和装入类文件的类与 C 或 C++ 编写的程序不同,Java 程序并不是一个可执行文件,而是由许多独立的类文件组成,每一个文件对应于一个 Java 类。 此外,这些类文件并非立即全部都装入内存,而是根据程序需要装入内存。ClassLoader 是 JVM 中将类装入内存的那部分。 而且,Java ClassLoader 就是用 Java 语言编写的。这意味着创建您自己的 ClassLoader 非常容易,不必了解 JVM 的微小细节。 Class.forName()将自动创建一个数据库driver的实例然后就可以用这是实例去连接到相应的dbms上对数据库进行操作Connection con = DriverManager.getConnection(url,"myLogin", "myPassword"); Class.forName()得到一个Class的实例,但是很慢。Class.forName("java.lang.String") == String.classClass.forName("String")会找不到类。 Class.forName()有两种形式:public static Class forName(String name)throws ClassNotFoundExceptionpublic static Class forName(String name, boolean initialize, ClassLoader loader) throws ClassNotFoundException第一种形式利用JVM的内置BootTrap ClassLoader来进行类的加载和初始化类。BootTrap ClassLoader是所有ClassLoader的Parent ClassLoader.第二种形式用指定的ClassLoader进行加载。只有当initialize是true而且这个类以前没有被初始化过,这时才初始化类。也就是说forName()利用ClassLoader来加载类的。关于ClassLoader可以到http://www-900.ibm.com/developerWorks/cn/education/java/j-classloader/tutorial/j-classloader-2-1.shtml看一看,或者参考JDK的DOCUMENT 一个类的转载方法有3种,用new,Class.forname(),loadclass(),其中new为隐式装载,后两种为显式装载。 socket 怎样向服务器端发送长String n=!a+!b+!c.....+!X 小弟刚学java零基础,请问有什么比较好的书么? org.apache.commons是JDK里的吗 用Jbuilder做的软件.... 大家请进 java 怎么实现面板收缩与展开? 请问这个错误是什么原因? j2sdk+redhat90 编译运行JAVA程序出问题,费解。 大家都用什么样的包来开发FTP啊? CSDN开设了我的技术专栏,欢迎访问!(散分) Edipse中建立/使用package apache2.0.39 和tomcat4.1.18的整合问题
负责在运行时查找和装入类文件的类
与 C 或 C++ 编写的程序不同,Java 程序并不是一个可执行文件,而是由许多独立的类文件组成,每一个文件对应于一个 Java 类。 此外,这些类文件并非立即全部都装入内存,而是根据程序需要装入内存。ClassLoader 是 JVM 中将类装入内存的那部分。 而且,Java ClassLoader 就是用 Java 语言编写的。这意味着创建您自己的 ClassLoader 非常容易,不必了解 JVM 的微小细节。
然后就可以用这是实例去连接到相应的dbms上对数据库进行操作
Connection con = DriverManager.getConnection(url,"myLogin", "myPassword");
public static Class forName(String name)throws ClassNotFoundExceptionpublic static Class forName(String name,
boolean initialize,
ClassLoader loader)
throws ClassNotFoundException
第一种形式利用JVM的内置BootTrap ClassLoader来进行类的加载和初始化类。BootTrap ClassLoader是所有ClassLoader的Parent ClassLoader.
第二种形式用指定的ClassLoader进行加载。只有当initialize是true而且这个类以前没有被初始化过,这时才初始化类。也就是说forName()利用ClassLoader来加载类的。
关于ClassLoader可以到http://www-900.ibm.com/developerWorks/cn/education/java/j-classloader/tutorial/j-classloader-2-1.shtml看一看,或者参考JDK的DOCUMENT