原创 JSONString轉List;Duplicate key

有一個字符串,需要轉爲List< Map> 的形式。但是在實際操作中出現了一些問題。 //將字符串轉爲JSONObject或JSONArray JSONObject jo = JSONObject.fromObject(str);

原创 信息的表示和處理

信息存儲 字長與字節 字長:每個計算機都有一個字長,對於字長爲w位的機器而言,虛擬地址範圍爲0~<nobr><span class="math" id="MathJax-Span-2056" style="width: 3.576em;

原创 異常控制流

異常 異常 最簡單的處理器控制流是平滑的,即指令按順序執行。但是系統必須對狀態變化進行反應,這種變化不一定和程序執行相關,如一個硬件定時器定期產生信號。異常就是控制流中的突變,用來響應處理器狀態中的某些變化。 異常處理 當處理器檢

原创 優化程序性能

優化程序性能主要從兩個步驟來考慮,第一步是消除不必要的內容,第二步是利用處理器的指令級並行能力。 消除不必要的內容 消除低效率循環 通過移動代碼,將執行多次但計算結果不改變的計算移動到循環外面。例: for(i=0;i<str.

原创 程序的機器級表示(二)

控制 以上操作,我們只考慮了直線代碼的行爲,即指令按順序執行。但是還有一些代碼,比如條件語句、循環語句和分支語句,要求有條件的執行,這時需要根據數據測試的結果來改變條件碼,結合跳轉指令決定操作執行的順序。 條件碼 除了整數寄存器,C

原创 程序的機器級表示(三)

過程 過程調用就是調用方法,這裏主要了解調用過程的時候存儲結構是如何變化的。 棧幀結構 IA32程序用程序棧來支持過程調用。機器用棧來傳遞過程參數、存儲返回信息、保存寄存器用於以後恢復,以及本地存儲。每個過程會分配一個棧幀。下圖描繪了

原创 程序的機器級表示(一)

這篇文章內容主要是瞭解彙編語言,以及它是怎麼工作的。以下所介紹的內容均爲在x86架構下,x64做了很多64位的擴展。重在理解實現方式及原理。:) 程序編碼 寄存器分類 程序計數器:用%eip表示,指示將要執行的下一條指令在存儲器中的地址

原创 Comparison method violates its general contract!

背景16號爲了統一線上服務器運行環境,將兩臺服務器的Tomcat6+JDK6升級到Tomcat7+JDK7,本以爲很簡單的事情,升級後自己驗證也沒問題,沒想到卻悲劇了。升級後,過了半小時運營就找過來反饋問題,部分角色無法登陸系統,由於異

原创 String解析——String s=new String("a");String s = "a" + "b";String的intern方法等問題

我們經常能看到一些問題,比如String字符串創建了幾個對象,判斷是否相等,等等。在這裏做一個總結。 String字符串在內存中的存儲 我們常把java內存區分爲“堆”和“棧”,但實際上其內存結構用下圖來描述更準確: 其中方法區存儲

原创 虛擬存儲器(一)——虛擬存儲器及地址翻譯

虛擬存儲器 虛擬存儲器是一個抽象的概念,主要目的是爲多個程序之間有效而安全地共享存儲器。它爲每個進程提供了一個大的、一致的和私有的地址空間。 虛擬地址與物理地址 把主存看成是由連續字節單元組成的大數組,並且用物理地址來標識每個數組的單

原创 JSONString轉List<map>;Duplicate key

有一個字符串,需要轉爲List< Map> 的形式。但是在實際操作中出現了一些問題。 //將字符串轉爲JSONObject或JSONArray JSONObject jo = JSONObject.fromObject(str); JSO

原创 異常控制流

異常 異常 最簡單的處理器控制流是平滑的,即指令按順序執行。但是系統必須對狀態變化進行反應,這種變化不一定和程序執行相關,如一個硬件定時器定期產生信號。異常就是控制流中的突變,用來響應處理器狀態中的某些變化。 異常處理 當處理器

原创 String數組轉List,java.lang.UnsupportedOperationException異常

可以通過Array.asList方法來將String數組轉爲List: String arr = {"1","2","3"}; List<String> list = Arrays.asList(arr);//將數組轉爲List 但是需

原创 虛擬存儲器(二)——Linux虛擬存儲器系統

Linux虛擬存儲器系統 在瞭解了虛擬存儲器的相關知識之後,我們通過Linux的虛擬存儲器系統,來大致瞭解下操作系統是如何組織虛擬存儲器的。 Linux進程的虛擬存儲器 上圖是一個Linux進程的虛擬存儲器,與之前所示虛擬存儲器的

原创 存儲器層次結構——基於存儲器的程序優化

局部性原理 一個編寫良好的計算機程序常常具有良好的局部性,它們傾向於引用鄰近於其他最近引用過的數據項的數據項,或者最近引用過的數據項本身。局部性通常有兩種不同的形式: 時間局部性:被引用過一次的存儲器位置很可能在不遠的將來再被多次引用。