What best describes "type erasure" in Java generics?
- aThe compiler generates a separate specialized class for each type argument, similar to C++ templates.
- bThe compiler checks generic types at compile time, then removes the type parameter information from the runtime bytecode.✓
- cThe JVM checks generic type parameters at runtime and throws an error on any mismatch.
- dThe compiler stores the exact type argument as bytecode metadata so reflection can always read it directly.
Explanation:Java generics are implemented via type erasure: the compiler enforces type-safety during compilation, then erases type parameters, replacing them with their bound (or Object) in the generated bytecode. This is why generic type information is largely unavailable at runtime.