gpt4 book ai didi

java - 在 Java 中,未使用的导入声明会占用内存吗?

转载 作者:IT老高 更新时间:2023-10-28 21:14:02 33 4
gpt4 key购买 nike

像这样的未使用的导入 - import android.widget.RelativeLayout; 会吃掉内存吗?只是想知道它有多少或只是有值(value)?也许这是个愚蠢的问题,但我还没有找到答案。

最佳答案

不,它们不会占用任何内存。导入只是被编译器用来在编译时解析类名。

编译器将每个类名更改为完全限定名。并删除导入语句。所以,import 语句不会变成字节码。

通配符导入的唯一问题是命名空间冲突,即,当在两个不同的包中定义了两个具有相同名称的类型时,使用通配符导入这些包将导致所使用的类型的名称冲突。


要查看编译器如何替换 import 语句,您可以使用 javap 命令生成类的字节码。考虑下面的代码:

import java.util.*;
import java.util.regex.*;

public class Test {
public static void main(String[] args) {

}
}

只需编译上述代码,并使用以下命令检查字节码:

javap Test

它给出以下输出:

public class Test {
public Test();
public static void main(java.lang.String[]);
}

所以,你可以看到 String 类型被替换为它的完全限定名 java.lang.String,并且字节码中没有 import 语句。

关于java - 在 Java 中,未使用的导入声明会占用内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153690/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com