原创 java8新特性--類型推斷的理解(泛化目標類型推斷)
簡單理解泛型 泛型是Java SE 1.5的新特性,泛型的本質是參數化類型,也就是說所操作的數據類型被指定爲一個參數。通俗點將就是“類型的變量”。這種類型變量可以用在類、接口和方法的創建中。 理解Java泛型最簡單的方法是把它看成一
原创 ThreadPoolExecutor源碼解析(基於Java1.8)
第一部分:ThreadPoolExecutor的繼承結構 根據上圖可以知道,ThreadPoolExecutor是繼承的AbstractExecutorService(抽象類)。再來看一下AbstractExecutorService的
原创 java活動對象學習總結
本文參考自:http://blog.csdn.net/zcc_0015/article/details/15502813 一、活動對象定義: 活動對象工作在對象級別而不像其他設計模式工作在對象繼承層級關係中。它將方法的調
原创 BitMap的理解(轉載)
轉載自:https://www.cnblogs.com/cjsblog/p/11613708.html 作者:廢物大師兄 Bit-map的基本思想就是用一個bit位來標記某個元素對應的Value,而Key即是該元素。由於採用了Bit
原创 Android Volley完全解析(郭林老師作品)
Android Volley完全解析(一),初識Volley的基本用法 轉載請註明出處:http://blog.csdn.net/guolin_blog/article/details/17482095 1. Volley簡介
原创 Java ConcurrentModificationException異常原因和解決方法
文章參考自:http://www.cnblogs.com/dolphin0520/p/3933551.html 對Vector、ArrayList在迭代的時候如果同時對其進行修改就會拋出java.util.ConcurrentMo
原创 Android系統進程Zygote啓動過程的源代碼分析(老羅的作品)
http://blog.csdn.net/luoshengyang/article/details/6768304 在Android系統中,所有的應用程序進程以及系統服務進程SystemServer都是由Zygote進程孕育(fo
原创 Context 都沒弄明白,還怎麼做 Android 開發?
原文:http://android.jobbole.com/83598/ Activity mActivity =new Activity() 作爲Android開發者,不知道你有沒有思考過這個問題,Activity可以new嗎?A
原创 TCP與UDP的區別
轉載自:http://blog.csdn.net/yipiankongbai/article/details/24435977 TCP和UDP是OSI模型中的運輸層中的協議。TCP提供可靠的通信傳輸,而UDP則常被用於讓廣播和細節控制
原创 Java中TreeSet與HashSet的對比
我們知道TreeSet與HashSet都實現了Set<E>,Set的特性就是不允許重複的元素。《thinking in Java》中說set必須定義equals方法確保對象的唯一性,但是經過測試貌似不是這樣,不知道是不是java1.5以後
原创 Android 內存泄漏總結
Java中的內存泄漏 java內存泄漏大家都不陌生了,簡單粗俗的講,就是該被釋放的對象沒有釋放,一直被某個或某些實例所持有卻不再被使用導致 GC 不能回收。在Java中,內存泄漏就是存在一些被分配的對象,這些對象有下面兩個特點,首
原创 Timer和handler的使用
Timer的使用很簡單: 查看源碼,可以看出來TimerTask是一個實現Runnable的任務而已;而Timer也就是繼承Thread實現的線程控制。 但是如上圖的代碼,在三星手機(操作系統爲4.3)上運行沒有效果(原因還沒有找到,有
原创 java之詳解匿名內部類
爲什麼要使用內部類?在《Think in java》中有這樣一句話:一般來說,內部類繼承自某個類或實現某個接口,內部類的代碼操作創建它的外圍類的對象,所以可以認爲內部類提供了某種進入其外圍類的窗口。使用內部類最吸引人的原因是:每個內部類
原创 【Java實現】劍指offer52--構建乘積數組
題目: 給定一個數組 A[0,1,...,n-1 ],請構建一個數組 B[0,1,...,n-1] 。其中 B 中的元素 B[i]=A[0]∗ A[1] ∗...∗ A[i−1]∗A[i+1] ∗ ... ∗A[n−1]
原创 LinkedBlockingQueue的offer與put的區別
首先,看一下LinkedBlockingQueue的put方法的源碼: /** * Inserts the specified element at the tail of this queue, waiting if