JAvaプログラミング思想読書ノート第3章と第4章


第三章と第四章読書ノート
       java   。
                    :  、                。

1.プログラミングでは「別名現象」に注意します.関数にオブジェクトを渡す際には、参照が伝達されるため、複数の参照が同時に同じ実際のオブジェクトを指している可能性があります.誤操作を避けるために、区別に注意してください.
2.ショート現象:式の最終論理値を正確に計算できると、式の残りの部分は計算されません.(コンピューターの等級試験を受けるときに穴を踏んだことがある)
3.オブジェクトの比較では、その==とequals()関数は等価ではありません.==と!=比較はオブジェクトの参照であり、2つのオブジェクトの内容が同じかどうかを比較するには、すべてのオブジェクトに適用される特殊なequals()メソッドを使用する必要があります.しかし、この方法は基本タイプには適用されず、基本タイプは==と!=を直接使用します.できます.ほとんどのjavaクラスライブラリでは、比較オブジェクトの参照ではなく、オブジェクトの内容を比較するためにequals()メソッドが実装されています.
4.一般的なforループは、集合を巡回する際に下付き文字を使用して集合の要素を位置決めし、javaはjdk 1.5でforeachループをサポートし始め、foreachは集合の巡回をある程度簡略化し、配列、集合を巡回する際にforeachは良い性能を持っている.しかしforeachはforサイクルに完全に代わることはできない.foreach制限シーンには以下の4点があります.
(1)foreachを用いて集合を遍歴する場合、集合はIteratorインタフェースを実現しなければならない.foreachはIteratorインタフェースを用いて集合の遍歴を実現する.(2)foreachループで1つのコレクションを巡回する場合は、コレクションに要素を追加することはできません.コレクションから要素を削除することはできません.そうしないと、ConcurrentModificationException異常が放出されます.この異常は、集合内の要素の個数を記録するために、集合内にmodCount変数があり、集合内に要素を追加または削除するとmodCountも変化し、遍歴開始時にmodCountの値が記録され、要素を遍歴するたびにその変化量が変化したか否かが判断されるためである.変更が発生した場合は、C o n c u r r e n t ModificationException異常を放出します.(3)foreachループ基本タイプを使用する場合、変数はセット内の要素の値を変更することはできません.オブジェクトを遍歴すると、オブジェクトの属性の値を変更することができますが、オブジェクトの参照を変更することはできません.(4)遍歴時に要素に従って集合中のindexを必要とする場合foreachは使用できない.