原创 Java虛擬機內存存儲結構以及GC回收算法的淺析

JVM內存結構:堆:存放所有new出來的東西。GC堆是Java虛擬機所管理的內存中最大的一塊內存區域,也是被各個線程共享的內存區域。堆被分爲新生代和老年代。方法區:存儲虛擬機加載的類信息,常量,靜態變量,各個內存共享的內存區域。默認大小爲

原创 Dragger2快速入門淺析

定Dagger2的基本介紹:dagger2是一個依賴注入框架,在編譯期間自動生成代碼,負責依賴對象的創建。使用Dagger2的好處:爲了進一步解耦和方便測試,我們會使用依賴注入的方式構建對象 (不使用 new 來創建依賴對象)。在mvp中

原创 記一次面試服務端實習生的知識點不足之處

今天下午參加了一家非常不錯的公司,面試官人很好,雖然有些問題沒答對,但是面試官還是溫馨的提示了告知了問題的答案。下面爲一些未答上或者答的不好的問題以及答案:javascript框架:        由於對這個方面的內容沒有過深的學習和了解

原创 Java快速排序和歸併排序區別和實現

快速排序與歸併排序的概念:        快速排序(Quicksort)是對冒泡排序的一種改進。          快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中

原创 git操作語句淺析

Git init    在一個文件目錄執行該指令,會把該目錄快速設置成Git的代碼倉庫。Git clone    從遠程服務器clone工程,也會創建一個代碼倉庫。git status      查看當前倉庫狀態,會提示哪些文件發生修改,

原创 Java的類的反射機制和運用淺析

java的反射機制可以說是java開發框架的靈魂所在。 在本篇博客中,我會結合別人大牛博客上所說和自己的理解淺談反射機制的理解和IOC和反射機制的關係。 反射機制的概念 主要是指程序可以訪問,檢測和修改它本身狀態或行爲的一種能力

原创 Java類的加載機制和加載方法淺析

什麼是類的加載 1.概述 Class文件由類裝載器裝載後,在JVM中將形成一份描述Class結構的元信息對象,通過該元信息對象可以獲知Class的結構信息:如構造函數,屬性和方法等,Java允許用戶藉由這個Class相關的元信息對象間接調

原创 一個死鎖的簡易好理解的Demo

package 死鎖demo; public class DeadLock implements Runnable{ boolean lockFormer; static Object o1 = new Objec

原创 Java併發模式—Future模式

Future Future模式是多線程開發中非常常見的一種設計模式,它的核心思想是異步調用。當我們需要調用一個函數方法時,如果這個函數執行很慢,那麼我們就要進行等待。但有時候,我們可能不急着要結果。因此,我們可以讓被調者立即返回,

原创 RXJava入門總結以及簡易Demo

Rxjava由於其基於事件流的鏈式調用、邏輯簡潔 & 使用簡單的特點,深受各大 Android開發者的歡迎在android開發框架中:RxJava+Retrofit+MVP+Dagger2(主流框架)中Rxjava是對網絡連接處理和圖片加

原创 Java創建單例模式最常用的創建方法——雙重檢查創建單例模式

雙重檢查創建單例模式 這是最常用的單例創造模式,也是框架中廣泛運用的單例建造模式,也是比較好的單例創造模式。廢話不多說,直接上代碼 /** * * @author jet * 雙重檢查創建單例模式 */ public

原创 大數據的處理算法——BitMap算法

大數據的處理算法——BitMap算法 首先我們來看一個問題: 如何判斷一個整數是否在40億個整數之中? 當時我看到這個問題首先想到的是利用一個map或者set進行存儲(/笑哭) 但是一個整數4個字節,40億個整數就是160億個字節,需

原创 線程循環運行demo

線程循環運行demo ​ (用notify-wait實現線程通信的小demo總結) Java在創建線程的時候,如果需要你去讓一個線程循環執行10次你會怎麼做? for(int i = 0; i < 10; i

原创 走進分佈式Java開發(一)—Java NIO

概述 何爲NIO,百度百科上的解釋爲: java.nio全稱java non-blocking IO(實際上是 new io),是指jdk1.4 及以上版本里提供的新api(New IO) ,爲所有的原始類型(boolean類型除外)

原创 Java無鎖的實現——原子變量

概述 對於併發控制來說,鎖是一種悲觀的策略。它總是假設每一次的臨界區操作會產生衝突,因此,必須對每次操作都小心翼翼。如果有多個線程同時訪問臨界區資源,就寧可犧牲性能讓線程進行等待,所以說鎖會阻塞線程執行。 而無鎖採用的是一種樂觀的策略