【发布时间】:2012-03-07 22:30:26
【问题描述】:
我有一个代码库,有些方法从未使用过。
javac 是否从类文件中删除未使用的方法?
【问题讨论】:
-
如果方法是
public,我希望不会。 -
@larsmans:为什么
public如此特别?是因为其他一些代码可能正在使用它们吗?你能详细说明一下吗?
我有一个代码库,有些方法从未使用过。
javac 是否从类文件中删除未使用的方法?
【问题讨论】:
public,我希望不会。
public 如此特别?是因为其他一些代码可能正在使用它们吗?你能详细说明一下吗?
问:我想知道我是否有一个代码库并且某些方法从未使用过。 javac 会从类文件中删除未使用的方法吗?
A:不。进入类的内容保留在类文件中。
...然而...
JVM 仅将需要的内容加载到内存中。 RAM 不会“浪费”在未使用的类上。
【讨论】:
不,它没有。要验证这一点,您可以运行
javap -c foo.bar.MyClass
并查看那里的所有代码。您也可以通过反射访问它(假设您使用适当的权限运行)。
【讨论】:
不,它没有,也不能。 想想如果编译器在编译库时这样做会发生什么。库想要为用户导出但不使用自身的所有方法都将被删除。 在 Java 中没有办法区分库和代码。
【讨论】: