Q:

javaのジェネリックで?あり・なしの違い

class Hoge<T>{ }

上記のClass宣言があるとして
Hoge x1;
Hoge<? > x2;

変数宣言で?ありと?なしで宣言できるみたいなのですが、この違いは何でしょうか？ 

A:

Hoge x1は後方互換のために残されているだけで、Hoge<? > x2と同様と記憶しています。 
確か、JavaのGenericsはコンパイル時に型パラメータ情報は落ちた記憶があります。