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

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

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

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

……但是……

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

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

 javap -c foo.bar.MyClass 

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

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