Java is implemented by 201 bytecodes that serve the same purpose as assembler instructions while providing object-file platform independence. A collection of core bytecodes provide critical and independent functionality while a collection of specialized bytecodes is meant to improve on the performance of some of the core bytecodes. This study identifies 67 specialized bytecodes and shows the impact of their removal by despecializing them into semantically equivalent core bytecodes. A detailed analysis of the effects of despecialization on execution efficiency and classfile size was performed. The effects on the SPEC JVM98 Benchmark Suite were analyzed for various subsets of the despecialized bytecodes using three distinct Java virtual machines. When all 67 bytecodes were despecialized, the average slow down across all benchmarks and virtual machines was 2.1 percent, while the single largest performance loss for any one benchmark was 12.7 percent. In some cases, a speedup was observed....