読者です 読者をやめる 読者になる 読者になる

新人SEの学習記録

14年度入社SEの学習記録用に始めたブログです。気づけば社会人3年目に突入。

学習記録

[Javaの学習]

■使用教材

Java魂―プログラミングを極める匠の技

 

■内容:4章 コレクション

●インタフェース実装モデルについて

・インタフェースを用いることでバグの伝播を防ぐ

>インタフェースを超えて影響を与えることは容易には起こりえないため

 

●コレクションの種類

1)java.util.Map

・検索テーブルに値を格納するコレクション、キーを使って格納

・同じキーを持つ値は設定できない

・Mapはソートされておらず、予測不可能な方法で反復処理される

・SortedMap:反復順序を制御したい場合。ソート可能なキーしか使えない、(Mapに比べて)挿入や削除が遅い

2)java.util.Collection

・検索テーブル以外のコレクション

・Set:反復順序を保証しない。セット内に重複がないことは保証

・SortedSet:自然ソート順 ot コンパレータを指定してソート

・List:特定の順序で格納され、数値のインデックスでアクセス。プログラマの必要に応じてソート

 

●等価と同一:Mapはどのように2つのキーが同じか判定するのか?

・同一:同じオブジェクトインスタンスの場合

>Objectクラスのequals()メソッドはこちら

・等価:同じデータを含む場合

>実際のデータを比較したい場合、equals()メソッドをオーバライドする必要

・equals()メソッドの用件

1)何回比較を行っても同じ結果が返る

2)対称性:x.equals(y) == true なら y.equals(x) == true

3)推移的:x.y && y.z -> x.z

4)再帰的:x.x

5)nullとの比較は必ずfalseを返す

 

●順序:SortedSetは何の基準でソートするか?

1)自然順序:Comparableインタフェースを実装し、compareToメソッドをオーバライド

・オブジェクトを引数に、intを返す(正の数ならthisの方が大きく、負なら小さく、0なら等しい)

・このcompareToに書かれた順序で自動的にソートされる

2)コンパレータを指定:Comparatorインタフェースを実装し、compareメソッドをオーバライド

・2つのオブジェクトを引数に、intを返す

・この実装クラスを、コレクション生成時にコンストラクタの引数として渡す

ex) SortedSet people = new TreeSet(new TaxIdComparator());

 

■所感

・時間不足のためコレクションの実装内容までできず。

・研修もちょうどインタフェースの内容だったため、より理解を深めることができた

>インタフェースの効用:バグの伝播を防ぐ

 

[Webプログラミング]

ECサイトの構築

JQueryを導入すれば見栄えよくログイン・登録のinvalidationが可能では?

>ただ本質ではないので、とりあえずざっとフォームだけ作る

>サーバサイドでのinvalidationをしっかり行うのが先決

 

 ・新規登録フォームとinvalidationプログラム作成(register.jsp, RegisterCheck.java

>登録フォームはとりあえず作成

>invalidationを記述中。。。

>emailアドレスのinvalidationが思いのほか奥が深い

※参考:404 Blog Not Found:「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ

>こちらもまずはざっとしたものを作るのが先決

 

■所感

・本質ではない場所で色々はまっている。

・まずはざっと全体像を作り、それから詳細を詰めるべき