Java Hour 61基礎概念ピックアップ

5065 ワード

ループ遍歴器
for (Iterator iter = list.iterator(); iter.hasNext();) {

            int i = ((Integer) iter.next()).intValue();

            sum += i;

        }

Listインタフェースは列挙可能なインタフェースを継承しており,この.itreator()メソッドがある.
中間過程は曲がりくねっているが、
public interface Collection<E> extends Iterable<E> {

もちろん戻ってくるこのIteratorも普通ではありません
public interface Iterator<E> {

       boolean hasNext();

       E next();

       void remove();

}

常用個List
ArrayList
LinkedList
Java汎用ワイルドカード
void printCollection(Collection<?> c) {



       c.add(new Object());

       for (Object e : c) {



           System.out.println(e);



       }

   }

これにobjectを追加できませんか?タイプで行きます.
List<? extends Shape>

これは比較的分かりやすく,C#における汎用制約である.
JVMはタイプ消去の方法を採用していると伝えられているので、これは実は擬似汎用型です.
Javaのインタフェースの中で変数を定義することができます
Javaインタフェースで定義できるのは定数です.
HashMapとHashCode
public class FunctionApp {

    private String name;



    public FunctionApp(String name) {

        this.name = name;

    }



    public int hashCode() {

        return 420;

    }

}

このクラスはHashCodeを書き換えたがequalは書き換えなかった.
personkeyに従ってHashMapで検索すると、すべてのHashCodeが同じであるため、HashMap全体を遍歴する必要がある.
HashSetとHashMapの違いは?
はっきり言って、SetとMapの違いです.Setは集合で、Mapはマッピングです.
HashSet内部は実はHashMap
Transientキーワード
オブジェクトをシーケンス化するときにこのフィールドをシーケンス化する必要はありません.
HashSet内部のHashMapはもちろんシーケンス化されたくない.
Man has a best friend who is a Dog
class Man { private Dog bestFriend; }

これはちょっと面白いですが、肝心なのはis a Doglで、タイプがDogであることを示しています.
子の親フィールド
public static void main(String[] args) {

        Foo f = new Bar();

        f.addFive();

        System.out.println(f.a);

    }

ここでは興味深いことに、インスタンス化されたのはサブクラスですが、呼び出しフィールドで取得された値は親クラスの値です.
タイプポインタが変わったと見ることができます.
Intergerとint
簡単な類比はC#の中で整形する箱詰めと箱を分解することができますか?
HttpのGetとPostについて
Restfulスタイルと意味から言えばGetは取り,Postは提出である.
しかし、現実はいつもすばらしく、サーバー側が受け入れた後、どのように処理したいのか.
URLアドレスバーに現れるとか、どんな長さで制限されるとか、浮雲です.
IEまたはマイクロソフト自身が作成したもの、またはサーバ側がサーバの保護のために処理能力を制限している.
SessionとCookieについて
基本的にサーバ側とクライアント側に分かればよい.
サーブレットのライフサイクル
基本的にinit、service、destoryの差は多くありません
Tomcatというサーヴァントコンテナと組み合わせて具体的な実現過程についてお話できれば幸いです.
String StringBuffer StringBuilder
StringBufferはスレッドが安全で、StrinbBuilderはスレッドが安全ではありません.
Stringについては、文字列プールも含めることができます.
Vector, ArrayList, LinkedList
Vectorスレッドは安全なので遅いです.
他は言うまでもない.
Hashtable, Hashmap,TreeMap
Hashtableスレッドは安全なので、書き込みが遅すぎます.
Hashmapスレッドは安全ではないが、同期HashMapを得る方法がある.
ここにConcurrentMapが現れました.
正直に言うと、これはよく知らないので、いっそ多く言わないほうがいいです.
Javaメモリモデルについて
以前のいくつかのツアーの成果に参加することができます.
データベースについては、問題ありません.
ゴミ回収については、問題ありません.