■
会社でおもしろい話が出ていたので紹介。
偽Javaエンジニアチェックリスト
・共通処理だからとりあえず継承しなきゃ。と思っている。・String a = "this is [" + b + "].";
が、実際にどういったコードとして実行されるかわからない・String a = new String("abcdefg");
と
String a = "abcdefg";
は全く同じ意味だと思っている・a = null;
とかして、とりあえずnullを代入すれば、迅速に解放されると思っている
(上位スコープに対するものを除く)・JDK1.5以降なのに StringBuffer を使っている
・HashMap,Hashtableの違いがわからない
・ArrayList list = new ArrayList();
とか書いている・HashMap map = new HashMap();
とか書いている・Listの内部配列がどのように拡張されていくか知らない
・synchronizedが何のために出てくるかわからない
・ThreadとRunnableの違いがわからない
・intとIntegerの違いがわからない
・インターフェイスと親クラスって
2つもあって、使い分けめんどくせ。と思っている。・インターフェイス作ると2個もファイルができて
わかりにくくなる。と思っている。・プリミティブ型と参照型がメモリー上でどう扱われているか、わからない
・catch (Exception ex) をしてとりあえず例外を回避している
・equals()とhashCode()が、ListやMapの中でどのような目的で
使用されているか知らない。・とにかく共通メソッドはstaticにすれば良いと思っている
・public static final String がコンパイル時に、参照側に
どう組み込まれるかわからない。・log.debug("test value: " + b);
これがパフォーマンス的に問題がないと思っている・Genericsが定義されたクラスを作れない
・Autoboxing/Unboxingを聞いたことがない、使ったことがない
・フレームワークを使うと、いちいちフレームワークの使い方を
伝授しないとだめなので、他者への引継ぎが面倒くさくなると思っている・short,int,longのバイナリが何バイト消費するか知らない
・Javaって準備とか決まりとか、いろいろめんどくさいよね。と思っている
・チェックリストに該当する項目があったけど、
まぁ今のところプログラムするのに特に支障はないし、いいか。
と思っている