java中E,T,?的区别?

java泛型中E和T是可以随便起名的,只是大家习惯用E和T,一传十十传百大家一看到<E>和<T>就知道是泛型了,所以这只是习惯使然。比如:

运行结果:

E和T你乱起名字也行:

是不影响运行的。

至于?,?是用于定义泛型的通配符和边界,一般比较常见的是<? extends T>,可以参考一下这篇资料