Java 中的 “import” 与 C/C++ 中的 “#include”

2022-09-02 09:02:34

Java中的“import”行为是否与C/C++中的“#include”相同?具体来说,它将包括它正在导入的整个库,还是只包括在后续代码中调用的类和方法?


答案 1

#include两者都没有,既不“导入”库,也不“导入”类或模块。

该指令只是告诉预处理器包含另一个文本文件(源)的内容。就这样。#include

预处理文件 A 和文件 B 的结果将像传递到一个文件一样传递给编译器,文件 B 将粘贴到放置指令的位置的文件 A 中。#include#include

为了说明这一点:这一切都发生在任何编译,代码生成之前

作为副作用,C/C++预处理器可以独立于编译器使用,以处理任何类型的文本文件输入。

有人可能会争辩说,像“不是C/C++语言的真正组成部分”这样的预处理器语句,因为它们本质上不需要用C/C++编写任何程序,因为它们永远不会传递给编译器。#include

该表达式不用于(标准)C/C++编程的上下文中,因为没有要导入的内容。import

C/C++模块在编译之前在源代码级别或编译由链接器放在一起。


答案 2

#include<stdio.h>表示在此文件中复制 stdio.h 的内容,而表示如果在此文件中找不到类,请查看上面提到的导入位置。Java导入不会增加文件的大小,它只是节省了几次击键。import java.util.ArrayList