java import 这个问题已经困扰我一下午了,现在把自己在网上找到的几个答案呈现一下,请求大牛相助啊,感激不尽!!!观点一:和C++,C中的include差不多~~~(我认为是错的吧····不过貌似很多人都这么以为)
观点二: import 的功能到此为止,它不像 #include 一样,会将档案内容载入进来。import 只是 请编译器帮你打字(这里用了“只是”),让编译器把没有姓的类别加上姓(即命名空间),并不会把别的文件的程式码写进来。(注:个人感觉就像是C++里面的 using namespace std一样,不加他的话就必须写std::cout,加了他就只需要写cout了。)
观点三:我看网上还有一些说import可以什么定位啊,寻找什么的···
以上的观点哪个是对的呢?或者都错了?
另外,还有个疑惑,请大牛们相助啊:
即: java没有头文件,也没有预编译吧,那么他是怎么处理类声明的呢?比如:我在文件夹a中写了A.java,文件夹b中写了B.java.(注:2个文件属于不同的文件夹)其中A.java中,我调用了B.java里面的某些类。 如果在C++中,这个时候我只需要在A文件中添加include“B.h”就是了。那么相应的在java中,怎么去实现呢? 也就是说A.java在编译的时候怎么去找到B.java里面的相关类的声明和信息?
观点二: import 的功能到此为止,它不像 #include 一样,会将档案内容载入进来。import 只是 请编译器帮你打字(这里用了“只是”),让编译器把没有姓的类别加上姓(即命名空间),并不会把别的文件的程式码写进来。(注:个人感觉就像是C++里面的 using namespace std一样,不加他的话就必须写std::cout,加了他就只需要写cout了。)
观点三:我看网上还有一些说import可以什么定位啊,寻找什么的···
以上的观点哪个是对的呢?或者都错了?
另外,还有个疑惑,请大牛们相助啊:
即: java没有头文件,也没有预编译吧,那么他是怎么处理类声明的呢?比如:我在文件夹a中写了A.java,文件夹b中写了B.java.(注:2个文件属于不同的文件夹)其中A.java中,我调用了B.java里面的某些类。 如果在C++中,这个时候我只需要在A文件中添加include“B.h”就是了。那么相应的在java中,怎么去实现呢? 也就是说A.java在编译的时候怎么去找到B.java里面的相关类的声明和信息?
解决方案 »
- 求教java se 接口的初级问题
- JDBC的Array接口和Oracle定义个TYPE 数据类型名字 IS TABLE OF..相关问题
- 有没有进行算术运算的API啊,进行积分或者LOG运算
- 用Swt的canvas画图后,怎样保存所画的图,需要写详细点
- struts中文问题!
- 到底错在哪? 在线等待~~~急
- 我这个内存分配 怎么老是失败啊!(出学者!)
- 请教各位大侠(散分)
- wls6.1+jb5做了一个SessionBean,我知问题出在Temp路径的空格上,我已改了,但还是出错。我在enterprise Setup中把Use external compiler去掉又可以,但这样不能更新Jar.求助!!
- 菜鸟求解
- java小程序
- 从文本里读取数据存储到数组中
javac / classloader 会根据你设置/传入的classpath定位.java/.class文件。
javac 会在 classpath 寻找对应的 .class 文件,找不到的话,会继续寻找对应的 .java 文件,再找不到就错误退出了。javac 自动将当前路径加到classpath,而java不会自动加上。
作用差不多,语义、用法和编译处理方法上差很多。观点二: import 的功能到此为止,它不像 #include 一样,会将档案内容载入进来。import 只是 请编译器帮你打字(这里用了“只是”),让编译器把没有姓的类别加上姓(即命名空间),并不会把别的文件的程式码写进来。(注:个人感觉就像是C++里面的 using namespace std一样,不加他的话就必须写std::cout,加了他就只需要写cout了。)
基本正解,但关于C++,标准里面是没有using的,这是M$为受控代码的C++做的扩展。观点三:我看网上还有一些说import可以什么定位啊,寻找什么的···
这个内容是关于classloader的,和import没太大关系
java解析时类与类之间的关联全部是通过常量池来做的,常量池有11中类型,类信息的常量池为CONSTANT_Class_info表,里面存储了符号引用,即某个类的名称,解析这个常量池的时候,java就从classpath中加载这个符号引用所表示的类,于是就关联起来了
LZ问的是编译的时候怎样怎样? 结果想要的是程序运行时java解释字节码阶段的知识。晕倒!