Java中用import导入类和用Class方法加载类有什么区别? 50

比如我用import导入“importjava.sql.Connection;”这个类。那么我用Class.forName("java.sql.Connection")方... 比如我用import导入“import java.sql.Connection;”这个类。那么我用Class.forName("java.sql.Connection")方法来加载这个类效果是不是一样的呢? 展开
 我来答
河北三当家
2019-05-07
知道答主
回答量:9
采纳率:0%
帮助的人:3499
展开全部
import仅仅包含导入操作,并不包含将字节码文件加载进内存这一动作,将字节码文件加载进内存是后续的实例化操作完成的。例如通过import导入了一堆包和类,但是后续什么都没用(没用实例化),那么导入的东西是不会被加载进内存的。而且import是编译期的,如果你在后续代码中没有使用到你导入的内容,那么import语句甚至不会编译和执行。查看字节码文件可以看出,import的作用就是对你程序中要用到(实例)的东西进行署名(signature),当程序运行的时候好知道你实例化的对象的类的字节码文件去哪里找。
而Class.forName方法包含的动作是:根据给出的全类名(方法的参数)找到对应的字节码文件,并将字节码文件通过ClassLoader加载进内存中生成Class类对象(方法的返回值就是Class类对象)。
这些就是二者的区别了。
xizissr
2017-10-17 · TA获得超过493个赞
知道小有建树答主
回答量:625
采纳率:50%
帮助的人:250万
展开全部
两只完全风马牛不相及
import是对编译器起作用的
Class.forName是对运行起作用的
更多追问追答
追问
请问对于Class.forName("com.mysql.jdbc.Driver");可不可以用import com.mysql.jdbc.Driver; 来代替呢?
追答
怎么可能呢?两者完全风马牛不相及
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式