javac是否删除了代码中未引用的方法?

时间:2012-03-07 22:30:27

标签: java javac

我有一个代码库,从未使用过某些方法。 javac是否从类文件中删除了未使用的方法?

3 个答案:

答案 0 :(得分:6)

问:我想知道我是否有代码库,但从未使用过某些方法。 javac是否从类文件中删除了未使用的方法?

答:不会。进入班级的是什么,留在班级档案中。

......但是......

JVM仅将所需内容加载到内存中。 RAM未被“浪费”在未使用的类上。

答案 1 :(得分:4)

不,它没有。要验证这一点,您可以运行

javap -c foo.bar.MyClass

并查看那里的所有代码。您也可以通过反射访问它(假设您以适当的权限运行)。

答案 2 :(得分:3)

不,它没有,它不能。 想想如果编译器在编译库时这样做会发生什么。库将要为用户导出但不使用自身的所有方法都将被删除。 Java中没有办法区分库和代码之间的东西。