import和classpath的问题 今天也不知道怎么的突发奇想:JVM在当前目录下找不到的话会到classpath下面去找类,既然这样为什么要用import把类导入呢?不知道怎么就卡着上面了,我知道这个问题很菜,请各位大哥不吝赐教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我觉得是编译器需要通过import找到那些类 所有要用到的包都要 import正确导入,否则程序怎么知道是要引用哪一个包?比如:java.sql.Date 与 java.util.Date等等 JVM在当前目录下找不到的话会到classpath下面去找类,既然这样为什么要用import把类导入呢?其实完全不用导入类,如果你想每次用到该类就用该类的完整名,也就是家上包名 你是钻进去了~~~呵呵~~~import 的作用是告诉 JVM 要使用的类是哪个。你可以不选择这中方式来通知 JVM 而选择其它的方式。例如:在逻辑中录入类的完全限定名。如:在不使用 import 的情况下这样写:java.util.Calendar ca = java.util.Calendar.getInstance(); 反正JVM如果在当前路径下找不到的话会到classpath下面找,说的意思是如果在当前路径下找不到的话,会根据你的import的路径来找,比如说import java.util.*;它会找java.util下面的类,其他的它不找,即使在java.util下面有包,它也不会进包去找,而不是说从classpath的总路径下开始一级一级的往下找,知道找到这个你需要的类一样,就和搜索那样从总路径开始直到找到这个类为止,甭管这个类有多深,一直搜索下去,是吗? 反正JVM如果在当前路径下找不到的话会到classpath下面找,说的意思是如果在当前路径下找不到的话,会根据你的import的路径来找,比如说import java.util.*;它会找java.util下面的类,其他的它不找,即使在java.util下面有包,它也不会进包去找,而不是说从classpath的总路径下开始一级一级的往下找,知道找到这个你需要的类一样,就和搜索那样从总路径开始直到找到这个类为止,甭管这个类有多深,一直搜索下去,是吗? 你理解错了,classpath 和 import 是两回事。classpath 是告诉 JVM 你的程序中要使用的 jar (当然不仅仅是 jar )在那个路径下。而 import 则是告诉 java compiler,或 JVM 。“你所使用的某个类(例如 Calendar )是哪个包下的。(例子中它是 java.util 包下的 )。java 引入包,就是为了解决‘相同类名’的问题” import 的“东西”不是路径(呵呵这么说还真蹩脚啊)。当你为一个类定义了一个包后,这个类文件就会存储在你所认为的“路径”中,但是,你不能仅仅认为他是路径。它最重要的作用就是“区分具有相同名称的类”。就像 2 楼给你的例子:Date 这个类名称对应了两个类。那 java compiler 或 jvm 怎么知道你用的是哪个类呢,就是通过 import 。这就是 import 的作用。仅此而已,它没有告诉 jvm 或 java compiler 去哪找“类文件”的功能。 JAVA 编写 telnet 程序 js可以返回当前页吗? 线程问题 各位大虾:有没有什么办法来动态替换jre/lib下的.jar呢? 拼音排序汉字,急急急!谢谢 java正则表达式的小问题 很急!!!!! 这道提为什么不选B? abs(x)为何输出负数?? 超菜问题:) 很奇怪的一个问题,调试了一天也没找出问题的原因。 socket接收线程的写法
其实完全不用导入类,如果你想每次用到该类就用该类的完整名,也就是家上包名
import 的作用是告诉 JVM 要使用的类是哪个。你可以不选择这中方式来通知 JVM 而选择其它的方式。例如:在逻辑中录入类的完全限定名。如:在不使用 import 的情况下这样写:java.util.Calendar ca = java.util.Calendar.getInstance();
你理解错了,classpath 和 import 是两回事。
classpath 是告诉 JVM 你的程序中要使用的 jar (当然不仅仅是 jar )在那个路径下。
而 import 则是告诉 java compiler,或 JVM 。“你所使用的某个类(例如 Calendar )是哪个包下的。(例子中它是 java.util 包下的 )。java 引入包,就是为了解决‘相同类名’的问题”
import 的“东西”不是路径(呵呵这么说还真蹩脚啊)。当你为一个类定义了一个包后,这个类文件就会存储在你所认为的“路径”中,但是,你不能仅仅认为他是路径。它最重要的作用就是“区分具有相同名称的类”。就像 2 楼给你的例子:Date 这个类名称对应了两个类。那 java compiler 或 jvm 怎么知道你用的是哪个类呢,就是通过 import 。这就是 import 的作用。仅此而已,它没有告诉 jvm 或 java compiler 去哪找“类文件”的功能。