原创 代理模式

代理模式英文名叫Proxy Pattern 看下Proxy的含義 [ˈprɑ:ksi] n.代表權;代理人,代替物;委託書; 主要表達的就是代表、代替、委託的意思。 我對這個模式的理解是這樣的: 一個服務或者是一個功能,一個對象。由於某種自

原创 JVM內存結構---《深入理解Java虛擬機》學習總結

Java虛擬機在執行Java程序的過程中會把它所管理的內存劃分爲若干個不同的數據區域。這些區域的用途各不相同,同時也依據着各自的執行規則,獨立的創建和銷燬數據。 虛擬機內存的劃分,如圖所示: 線程之間互相獨立的區域有: 虛擬機棧 、本地方

原创 JVM GC-----2、垃圾標記算法(一)

在上一篇文章中,我介紹了關於GC機制中,GC在確認垃圾對象後,是如何回收這些垃圾對象的幾種算法。現在介紹下GC機制一般是如何定位(或者叫做標記)出這些垃圾對象的。我們先來問下自己,如何判介紹了斷一個對象可以被回收。答案很簡單也很直白。這個對

原创 HashTable的故事----Jdk源碼解讀

HashTable的故事 很早之前,在講HashMap的時候,我們就說過hash是散列,把...弄碎的意思。hashtable中的hash也是這個意思,而table呢,是指數據表格,也就是說hashtable的本意是指,一份被數據被打散,分

原创 linux下文件的權限

最近搞了一批權限最小化的問題,這裏專門進行一下linux下文件權限的總結,其實非常簡單。 在介紹linux下文件的情況,需要先介紹一個概念,用戶、用戶組。 和win一樣,linux也是需要用戶才能登錄的。不同的是在linux中,還存在一個概

原创 java關鍵字 volatile的作用及使用說明

先來看看這個關鍵字是什麼意思:volatile  [ˈvɒlətaɪl] adj. 易變的,不穩定的; 從翻譯上來看,volatile表示這個關鍵字是極易發生改變的。volatile是java語言中,最輕量級的併發同步機制。這個關鍵字有如下

原创 JVM GC-----3、垃圾標記算法(二)

在上一篇文章中,介紹了在GC機制中,GC是以什麼標準判定對象可以被標記的,以及最有效最常用的可達性分析法。今天介紹另外一種非常常用的標記算法,它的應用面也相當廣泛。這就是:引用計數法 Reference Counting  這個算法的本質,

原创 2017華爲編程大賽總結

      華爲研發部門,每年都會在部門內部舉辦一屆編程大賽。旨在讓開發人員在工作之餘,通過遊戲編程的切磋,提高技術和協作能力。在入職華爲的第四個年頭,我終於如願拿到了部門編程大賽的冠軍。之前的每一年也都會參加,其中兩次抱大腿拿到了亞軍,一

原创 爲什麼這些java接口沒有抽象方法?淺談Java標記接口

在jdk的源碼中,存在這樣的一些接口,他們不包含任何的(抽象)方法,但是卻廣泛的存在。 這種接口我們稱之爲Mark Interface,也就是標記接口。 這些接口呢,我們不用來實現任何的方法,他們的作用就是當某個類實現這個接口的時候,我們就

原创 JVM GC-----1、垃圾回收算法

說到Java,一定繞不開GC,儘管不是Java首創的,但Java一定是使用GC的代表。GC就是垃圾回收,更直接點說就是內存回收。是對內存進行整理,從而使內存的使用儘可能大的被複用。 一直想好好寫一篇關於GC的文章,可是卻發現要寫的東西太大了

原创 淺談Java中的引用

在Java語言中,引用是指,某一個數據,代表的是另外一塊內存的的起始地址,那麼我們就稱這個數據爲引用。 在JVM中,GC回收的大致準則,是認定如果不能從根節點,根據引用的不斷傳遞,最終指向到一塊內存區域,我們就將這塊內存區域回收掉。但是這

原创 HashSet的故事----Jdk源碼解讀

Hash,我們在說HashMap的時候,已經知道Hash是散列,Map是映射了。 那麼Set又是什麼呢 ? 先來看看Set的翻譯是什麼 n. [數] 集合;一套;佈景;[機] 裝置 這裏Set所取的含義是集合。而且是數學概念上的集合。數學概

原创 淺談RSA加密

RSA背景 在1976年以前,傳統的加解密過程是: 1、A採用某種手段對數據進行加密。 2、數據傳輸到B的手中。 3、B逆向的實施A加密採用的步驟。 4、數據被還原。 這就是所謂的對稱加密。 解密和加密的互爲彼此的逆過程。加密的人必定知道解