1 關於虛擬機
1.1 垃圾收集
Java垃圾收集機制
GC-垃圾回收機制
這兩篇文章結合起來看 大體上能把 垃圾收集 介紹全了,
還需要補充,查看年輕代 老年代 各種內存使用情況的工具 ,以及使用方法。
這個可以在 深入分析Java web 中找到。
這部分後期補充
待更新。。。。
1.2 內存區域 與 內存溢出
1.2類初始化
1.3 類加載機制
2 併發
2.1 阻塞隊列
2.2 併發新特性—Executor框架與線程池
2.3 生產者—消費者模型
2.4 Runnable和Thread實現多線程的區別
3 待定
3.1 淺談Java中的hashcode方法
3.2 解析WeakHashMap與HashMap的區別詳解
4 參數傳遞
當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這裏到底是值傳遞還是引用傳遞?
答:是值傳遞。Java 編程語言只有值傳遞參數。當一個對象實例作爲一個參數被傳遞到方法中時,參數的值就是該對象的引用一個副本。指向同一個對象,對象的內容可以在被調用的方法中改變,但對象的引用(不是引用的副本)是永遠不會改變的。Java參數,不管是原始類型還是引用類型,傳遞的都是副本(有另外一種說法是傳值,但是說傳副本更好理解吧,傳值通常是相對傳址而言)。
- 如果參數類型是原始類型,那麼傳過來的就是這個參數的一個副本,也就是這個原始參數的值,這個跟之前所談的傳值是一樣的。如果在函數中改變了副本的 值不會改變原始的值.
- 如果參數類型是引用類型,那麼傳過來的就是這個引用參數的副本,這個副本存放的是參數的地址。如果在函數中沒有改變這個副本的地址,而是改變了地址中的 值,那麼在函數內的改變會影響到傳入的參數。如果在函數中改變了副本的地址,如new一個,那麼副本就指向了一個新的地址,此時傳入的參數還是指向原來的 地址,所以不會改變參數的值。