Javaプログラマであるかを見分ける10の質問に答えてみる

Javaプログラマであるかを見分ける10の質問 - やさしいデスマーチ
JavaプログラマではないがJavaを1年ぐらいは使っていたので答えてみる。
おそらく大抵間違っているのでそのうち追記として正解を載せる。
追記:出題者が回答編書いてた。Javaプログラマであるかを見分ける10の質問-回答編 - やさしいデスマーチ

==演算子とequalsメソッドの違いは何か?

オブジェクトidの比較とオブジェクトの中身の比較

文字列の連結は原則として+演算子を使ってはならない理由を説明せよ。

余分にStringオブジェクトが生成されるから

Listのようにジェネリクス型を使う主たる目的は何か?

型変換のためのコード削減と型変換ミスの予防

オブジェクトがガベージコレクションGC)される主たる条件は何か?

参照カウンタが0になった

チェック例外と非チェック例外の違いを型と例外処理の観点で説明せよ。

RuntimeExceptionとErrorのどちらからの派生なのか。

フィールドのアクセス修飾子をprivateにしgetter/setterメソッドを提供する事でフィールドを参照する設計方針を取る主な理由を説明せよ

値チェックと整形を行わせるため

NullPointerExceptionが発生するのは主にどういう状況か?

スレッド間の同期をミスったとき

オーバーロードとオーバーライドの違いは何か?

何か違いあったっけか。

コンストラクタとは何か?

クラスのインスタンスを生成するとき呼ばれるもの

インターフェイスを利用する目的を1つ説明せよ

多種類のクラスを同一の関数で取り扱う。