原创 Android PagerAdapter notifyDatasetChanged

forget to call notifyDatasetChanged 錯誤 這幾天一直在完善之前自己的寫的Android應用。想用ViewPager讓之前界面能夠滑動閱讀。但是滑動過程中,經常會莫名其妙地遇到一個問題。莫名其妙地

原创 Java F-bounded

Java F-bounded 上次在StackOverflow上面問了一個問題,下面這種模式有什麼用處. abstract class Base<T extends Base<T>> { } class

原创 JVM內存管理

內存區域 Java的內存區域主要包括虛擬機棧,本地方法棧,程序計數器,堆,方法區。 虛擬機棧 是對應於每個線程運行時候的東西,JVM會給每個線程分配一個棧,線程運行就是執行棧裏面的東西。這個棧又包含了幀,幀對應着線程函數。棧裏面只

原创 Java方法簽名與JNI,反射

http://blog.houzhi.me/2016/03/19/java-signature-reflect-jni 在這段時間寫東西,必須要先吐槽一下找實習的杯具。找個實習不容易,沒經驗,各種跪。 一直都覺得在Java反射中,

原创 Http協議

老早就學了Http協議,但是最開始學HTTP協議的時候,沒有從內心意識到他的地位之高,它的使用範圍之廣。那時候學習的時候,基本時聯繫到平時使用的Apache Http包或者Java HttpUrlConnection來考慮了。更多

原创 子View按規則自動移動Layout

項目地址:https://github.com/xxxzhi/ChildAutoMovi-Layout 之前看到一個屏幕上有點不斷閃動的,並且移動的界面。當時久萌生一種想法,能不能做一個這樣的選擇界面呢? 實現起來其實比較簡單,

原创 Java泛型Type體系

最近看開源代碼,看到裏面很多Java泛型,並且通過反射去獲取泛型信息。如果說要看懂泛型代碼,那還是比較容易,但是如果要自己利用泛型寫成漂亮巧妙的框架,那必須對泛型有足夠的瞭解。所以這兩三天就不在不斷地看Java泛型相關的東西。如

原创 Runtime.exec使用錯誤導致延遲

這篇文章是紀錄了一個bug解決的過程,但是我還是沒有能夠真正地找出bug的緣由。希望大牛能夠詳細解釋。 問題的發現 當接觸的系統越來越大的時候,對於系統的性能越來越高的時候,找到表面問題的真正原因就慢慢地成爲了一個比較麻煩的問題。

原创 Retrofit源碼解析

去年10月,之前看的Retrofit源碼,原來一直沒有發表… http://blog.houzhi.me/2015/10/07/retorfit-analyse

原创 java虛擬機Class格式與指令

前幾天看《深入理解java虛擬機》中關於.class文件的詳細解析,實際上Class文件裏面就是包含着運行時候的指令,以及數據等內容。如果想要能夠讀懂Class文件,那一定需要對Class的文件結構以及Java虛擬機指令集有一定的

原创 Otto與EventBus框架比較

最近這幾天經常在空閒時間看到了AOP編程,其實也就是對面向事件過程編程,一開始一直很難理解這個名次。不過看到Android正好有面向事件編程,程序解藕的開源庫(Otto,EventBus)。所以閒暇時間就去看了一下這兩個庫的源碼,

原创 Http keep-alive 與Tcp keep-alive

前兩天面試遇到一個問題:如果讓你對一個項目通信協議進行選擇的話,你會選擇Http還是Tcp(當時問的是套接字,其實套接字還有UDP啦,我好像也沒去講)協議?感覺當時腦子轉的不太靈活。而且以爲Http keep-alive與Tcp

原创 瞭解Java泛型

Java泛型是從JDK1.5開始引入的,它與C++的模版非常類似。但是Java的模版完全在編譯的時候實現,使用一種擦除的技術在編譯的時候就將模版完全替換,由編譯器執行類型檢查和推斷,編譯成普通的非泛型字節碼。正因爲如此,雖然Jav

原创 Java註解簡述

Java註解簡述 國慶假期前後,基本是看一下開源的項目,發現不少優秀的開源項目都用了註解和動態代理相關的知識,所以順帶有好好地研讀了一下註解和動態代理,加深了對註解和動態代理的認識。博客都差不多接近要斷了,前一段七七八八地看了各種

原创 Android源碼代理模式---Binder

Binder是Android的進程間通信核心,如果看過Android源碼,你會發現源碼中Android的各種核心服務都是通過Binder機制進行相互通信的。在Binder的client部分就是通過代理模式來訪問Server端的。這