1. jvm內部分為主工作區和線程工作區。主工作區是實例的所有線程共有,線程工作區是實例的每個線程專有的工作區,其中包括一些主工作區的一些實例字段數據的拷貝。
2. 服務器一般都有線程池,線程資源是可以重復利用的。你2000個用戶在線,不見得能又200個用戶同時(或者說并發)訪問。再說,只要對象不是太大,我寧愿用200個拷貝,也不想讓用戶在這個200個任務的隊列里等待。
3. 兩個DB之間的復制數據,每個DB各自使用自己的Sequane來生成id。復制數據時,如果DB中的外鍵是由DB維護的,則不會產生id沖突,如果外鍵是由外部程序維護的,則可能會產生錯誤!
4. 對于非static的類的數據成員來說,在該類產生的實例中都有一份,并且相互獨立(修改后并不影響其他實例), 但static的數據成員則變成了每個類只有一份,即在該類產生的所有實例共享這一個數據成員, 該數據成員的改變會影響到其他的實例. 而static的方法則是讓你不用創建對象及能調用這個方法.
5. ThreadLocal的作用就是將經常要用到的對象的引用放到屬于線程自己的一個存儲空間中,在該線程的執行過程中,可以通過類的靜態的ThreadLocal來方便的獲取到這個對象,而不用通過參數的形式傳來傳去。