原创 Java中String直接賦字符串和new String的區別

解析Java中的String對象的數據類型  1. String是一個對象。  因爲對象的默認值是null,所以String的默認值也是null;但它又是一種特殊的對象,有其它對象沒有的一些特性。  2. new String()和new

原创 合併兩個已經排序的鏈表

問題描述:給定兩個鏈表的頭指針,並且這兩個鏈表都已經有順序了,將這兩個鏈表合併成一個鏈表,並且使合併後的鏈表依然有序。 分析:這個問題有點類似於歸併排序中的歸併步驟。具體思想如下:         首先比較兩個鏈表的頭結點,並將較小

原创 Java中對象的三種狀態

 Java中的對象的三種狀態是和垃圾回收緊密相關的,因此有必要深究。 狀態一:可觸及態:從根節點開始,可以搜索到這個對象,也就是可以訪問到這個對象,也有人將其稱爲可達狀態。 狀態二:可復活態:從根節點開始,無論如何都不能訪問到這個對

原创 求斐波那契數列的第n項

問題描述:斐波那契數列是這樣的一個數列,1,1,2,3,5,8,..,即前兩項都是1,後面每一項都是其前面兩項的和。               現在要你求出該數列的第n項。 分析:該問題是一個經典的數列問題,相信大家在很多語言的教

原创 常用垃圾回收算法

今天我關於常見的垃圾回收算法來做個總結,我們最常聽到的是Java虛擬機裏的垃圾回收機制,其實垃圾回收的概念最先並不是Java裏首先提出來的, 垃圾回收這個概念很早就已經被提出來了,並且已經在其他語言中得到了應用。       關於垃

原创 HTTP協議報文格式

HTTP協議報文格式 接下來我們看看HTTP協議(Hypertext Transfer Protocol――超文本傳輸協議)瀏覽器端(客戶端)向WEB服務器端訪問頁面的過程和HTTP協議報文的格式。 基於HTTP協議的客戶機訪問包括

原创 約瑟夫環問題

問題描述:有n個人,編號分別從0到n-1排列,這n個人圍成一圈,現在從編號爲0的人開始報數,當報到數字m的人,離開圈子,然後接着下一個人從0開始報數,依次類推,問最後只剩下一個人時,編號是多少? 分析:這就是著名的約瑟夫環問題,關於來

原创 數組循環移位問題

問題描述:把一個數組中的元素循環右移k位,時間複雜度嚴格爲O(n),不能是O(kn). 分析:對於這個問題很容易想到的一種方法是依次循環右移,但是這樣的話時間複雜度是O(kn),明顯不符合題目要求,在之前的博客中,我寫的對於字符串的移

原创 String、StringBuffer與StringBuilder之間區別

       關於這三個類在字符串處理中的位置不言而喻,那麼他們到底有什麼優缺點,到底什麼時候該用誰呢?下面我從以下幾點說明一下   1.三者在執行速度方面的比較:StringBuilder >  StringBuffer  >  S

原创 最大值與最小值問題

問題描述:尋找數組中的最大值與最小值。 分析:這個問題實際中用的非常多,需要我們好好研究下。我在之前的博客中曾提到過一個線性時間選擇算法用來求解TopK問題,同樣的這個也可以使用那個算法,實際就是TOP1和TopN,但是由於問題的特殊

原创 快樂數問題

問題描述:設計一個算法,判斷一個數字是否是“快樂數”。快樂數的定義如下:一個正整數,計算出它各位數字的平方和,得到一個新的數字,再對這個新的數字重複這一過程,直到最後得到數字1或是其他某幾個數字的無限循環。在這些數字中,經過上述流程最終能

原创 矩形覆蓋問題

問題描述:用2*1的小矩形橫着或者豎着去覆蓋更大的矩形。現在問用8個2*1的小矩形無重疊地覆蓋一個2*8的大矩形,總共有多少種方法?矩形如下:                分析:我們可以把2*8的覆蓋方法記爲f(8)。用第一個1*

原创 求數組排列的範圍

問題描述:給定一個整數數組,將這個整數數組排列成一個整數,並且數組的每個元素都要用到,求所排列出的整數的範圍。 分析:這是一個很有意思的題目,初看好像是要求所有排列情況的最小值和最大值,當然這樣做也可以求出來,只不過時間複雜度過高,

原创 常見排序算法小結

   排序算法經過了很長時間的演變,產生了很多種不同的方法。對於初學者來說,對它們進行整理便於理解記憶顯得很重要。每種算法都有它特定的使用場合,很難通用。因此,我們很有必要對所有常見的排序算法進行歸納。      我不喜歡死記硬背,我

原创 LaTeX 各種命令,符號

http://zh.wikipedia.org/wiki/Help:MATH 函數、符號及特殊字符 聲調 語法 效果 語法 效果 語法 效果 \bar{x} \acute{\eta} \check{\alpha}