我有一个代码库,从未使用过某些方法。
javac
是否从类文件中删除了未使用的方法?
答案 0 :(得分:6)
答:不会。进入班级的是什么,留在班级档案中。
......但是......
JVM仅将所需内容加载到内存中。 RAM未被“浪费”在未使用的类上。
答案 1 :(得分:4)
不,它没有。要验证这一点,您可以运行
javap -c foo.bar.MyClass
并查看那里的所有代码。您也可以通过反射访问它(假设您以适当的权限运行)。
答案 2 :(得分:3)
不,它没有,它不能。 想想如果编译器在编译库时这样做会发生什么。库将要为用户导出但不使用自身的所有方法都将被删除。 Java中没有办法区分库和代码之间的东西。