Java泛型是一种类型参数化技术,通过在类、接口或方法定义时使用类型占位符(如T、E),在使用时再指定具体类型,从而在编译期实现类型安全并消除强制类型转换,提升代码的通用性与可读性。泛型通配符`?`用于解决泛型类型不兼容的问题,可配合`extends`和`super`实现上下界限定,其中`<? extends T>`设定类型上限、支持只读操作,`<? super T>`设定类型下限、支持写入操作。泛型的底层实现是类型擦除,编译时会将泛型占位符替换为其上限类型(默认Object)并自动插入强制类型转换,运行时JVM无法感知泛型。泛型占位符(如E用于集合元素、T用于通用类型)与通配符有本质区别,前者用于定义,后者用于使用时的类型约束。