It seems that java's reflaction need the symbol table to be compiled to the class file. but for performance considration, in run time we usually remove it out. ( i don't know java, in c++ ,we really move it out in production executives).
my quesion is if I remove the symbol table, will this means that some library, such as spring will not function right ?
ps:
from Professional Eclipse 3 for Java™Developers by Berthold Daum
Classfiles and JDK Compliance On the Compliance & Classfiles page you can specify which symbolic information, such as variable names and line numbers, is to be included in the generated classfiles. This information is required for debugging, and therefore you may want to leave the proposed settings unchanged. However, for a welltested program it may make sense to remove this information from the classfiles; generated files are much smaller without the symbol tables.