avoid pointless loading the whole class definition
optimize ApplicationClassloader.getClassIgnoreCase(): postpone executing thousands of 'replace' actions because it leads to useless object allocations.
avoid reading Java file twice (in getApplicationClass and ApplicationClass constructor)
Use shorter API
Use StringBuilder instead of old-fashioned StringBuffer that is slow (synchronized)