原创 Java併發編程系列(一)——Volatile

LZ水平有限,如果發現有錯誤之處,歡迎大家指出,或者覺得那塊說的不好,歡迎建議。希望和大家一塊討論學習 LZ QQ:1310368322 在討論Volatile關鍵字之前,我們先來聊聊併發 什麼是併發?爲什麼需要併發?併發會

原创 Java中補碼的那些事

內存、顯示器、鍵盤都是非常要好的哥們,他們協同合作爲人類服務,但是人類卻對鍵盤和顯示器情有獨鍾,根本不關心內存長什麼樣子 那我們程序員寫的那些代碼,在計算機的世界裏到底是怎樣的呢? 先來看一段代碼 int i = 1; 看起來

原创 操作系統之進程和線程

LZ水平有限,如果發現有錯誤之處,歡迎大家指出,或者覺得那塊說的不好,歡迎建議。希望和大家一塊討論學習 LZ QQ:1310368322 進程和線程理解起來比較抽象,是因爲它本來就是一種抽象,一種操作系統層面的抽象。 我們先

原创 Unicode 與 UTF-8的關係

要弄清Unicode與UTF-8的關係,我們還得從他們的來源說起,下來我們從剛開始的編碼說起,直到UTF-8的出現,我們就會感覺到他們之間的關係 1、ASCII碼 我們都知道,在計算機的世界裏,信息的表示方式只有0和1,但

原创 淺談操作系統之虛擬內存

首先我們來一個概念 虛擬內存,虛擬內存是一種內存管理技術,它會使程序自己認爲自己擁有一塊很大且連續的內存,然而,這個程序在內存中不是連續的,並且有些還會在磁盤上,在需要時進行數據交換 難以實現的物理尋址 我們把內存可以看成一

原创 初探Java IO 系統

Java的IO家族很是繁榮,剛接觸有點讓人摸不清關係,今天讓我們來認識一下他們。 認識他們之前,我們先來了解一下什麼是數據流,很顯然,從字面上理解,流動的數據,你可以想象一下,水庫裏的水就是數據,我現在想把這些水弄到另外一個地方

原创 動態規劃

初探動態規化 剛學動態規劃,或多或少都有一些困惑。今天我們來看看什麼是動態規劃,以及他的應用。 學過分治方法的人都知道,分治方法是通過組合子問題來求解原問題,而動態規劃與分治方法相似,都是通過組合子問題的解來求解原問題,只不過動

原创 數組指針和指針數組的區別

中國的文字博大精深,不仔細研讀,很容易理解錯誤,就拿這個數組指針和指針數組來說吧,剛開始接觸很容易弄混 那麼到底什麼是數組指針?什麼是指針數組?他們之間又有什麼區別? 指針數組: 數組裏的每一個元素都爲指針的數組,本質爲數組,

原创 關於sizeof 和strlen 的用法

/*        2016年6月6日12:40:22    關於sizeof 和 strlen 的用法 */ #include<stdio.h>

原创 JVM之類文件結構——上篇(常量池)

Java語言之所以強大的一個原因就在於它具有跨平臺性,Java源文件被編譯後的結果不是本地機器碼(與機器平臺相關聯)而是字節碼(與機器平臺無關),然後由JVM將字節碼去加載並執行它。 那麼Java的字節碼文件到底長什麼樣? 下

原创 for循環分號之間的多個語句執行次序問題

最近在編程時要用到給for循環小括號裏面的分號之間寫上幾個語句,所以,就想到了執行順序的問題 比如 for(i = 0 ;  i < 5;  i = j, i++) 到底是先執行  i = j  再執行 i ++,還是先執行 i++ 再執

原创 unsigned char 數值溢出問題

#include<stdio.h> int main(void) {     unsigned char i = 256;int a;a = i +

原创 批處理系統和分時系統的區別

要弄清批處理系統和分時系統的區別,首先我們得了解何爲批處理系統和分時系統? 一、批處理系統 從字面上理解,就是一批一批的處理任務的一種系統,嚴格的定義,就是指用戶將一批作業提交給操作系統後就不再幹預,由操作系統控制它們自動運行

原创 JVM之類文件結構——下篇(字段、方法和屬性)

LZ水平有限,如果發現有錯誤之處,歡迎大家指出,或者覺得那塊說的不好,歡迎建議。希望和大家一塊討論學習 LZ QQ:1310368322 上篇我們着重討論了class文件中的常量池,接下來我們來看看下面的十六進制數到底是什麼含義?

原创 synchronized與Lock 擂臺之戰

面試官:說說synchronized和Lock(或ReentrantLock)的區別 Java 1.5之後,對共享變量訪問的協調機制除了之前的synchronized和volatile又多了一個Lock,深刻理解synchronized與