原创 DES加解密總結

DES是廣泛使用的分組對稱加密算法,它要求待加密數據要8位對齊,所以在數據不足8位時候會出現padding的情況, 所以有可能因爲padding不同,而出現加解密結果不一樣,這種情況在異構系統間的數據通信特別容易出現,例如jav

原创 小心jsch的sftp連接泄露

今天早上和一個同事處理一個現網問題,從javacore裏邊可以看到大量的Connect Thread,如下所示: Connect thread 192.168.1.100 session" prio=6 tid=0x042d340

原创 LeetCode題解-2-Add Two Numbers

解題思路 這個題目也是比較簡單的。主要需要考慮的是如何處理l1和l2長度不一致的情況,進位的處理,還有特別考慮最後一次進位的情況。 爲了簡化處理,我採用了一個啞結點作爲head,用carry下次操作的進位值,默認是0. 然後從頭

原创 LeetCode題解-4-Median of Two Sorted Arrays

解題思路 這個題目是說在兩個已排序的數組中找到中間的數,並且要求複雜度是O(ln(m+n))。看到這個複雜度要求,就不能使用簡單的數組合並後取中間位置,而是要考慮類似二分法之類的算法。 算法的要點就是把題目轉換成尋找第k個位置的數

原创 簡單說說jsonp原理

前幾天參加面試,好幾個面試者簡歷都寫着jsonp,解決跨域之類的調用。於是問一下知不知道jsonp的實現原理,結果沒一個答得上來,有點小失望。 這裏簡單描述一下關鍵點,權當一個記錄。 假設a網頁調用b網站的服務 a網站會準備一個方法,例

原创 淺談系統線程數限制

Linux進程與線程 概念就不提了,Richard Stevens的描述: > fork is expensive. Memory is copied from the parent to the child, all descrip

原创 框架應用中如何更好地解決問題

現代應用開發中或多或少會使用到各種開源,自研的庫,框架等,各種資料良莠不齊, 除了部分成熟開源,商業框架的文檔做得很好,使用廣泛,生態完整,的確很多問題可以處理。 但自研的通常就是重災區,資料少,不同步, 那麼如何在這類這類框架中找

原创 關於攻城獅技術能力提升的一點看法

今天聽到有同事說起,網上有技能培訓的網課,視頻教學,講解一些’高級’技術,例如從頭構建一個tomcat,實時演示。網課價格數千塊,對於搞畢業沒多久的同學,是一筆不小的開支。 對於這個事情,我是這麼看的: 網課不一定和你的學習能力同步,教

原创 我眼中的uee黑科技

備註: uee是我廠內部的一個前端框架. 這可能是最後一篇關於uee的文章了,因爲已經不關注這個方面的技術很久了。術業有專攻,前端嘛,那可怕的前端摩爾定律,還是讓專業人士去操心吧。 上個星期有一天,有同事反饋uee的watch不好使,變量

原创 LeetCode題解-13-Roman to Integer

解題思路 題意是說羅馬數字轉成普通數字。 這個題目和12題是類似的,首先要理解羅馬數字的表示法,它是按大小結合順序來的,前面幾個字母組合起來如果能夠解釋成較大的數字,那就使用這個表示,而不是按舉個字母來的。 所以羅馬數字轉成數字,例如當前

原创 俄羅斯方塊轉彎算法實現

關於俄羅斯方塊程序對戰程序中實現方塊轉彎的算法描述。 爲了方便描述算法的原理,以方塊的左上角爲基準,簡化問題爲一個1*1的小方塊,在row*col的矩陣中可以最終移動到哪個位置。 現在來看看位置(x y)是否可以移動到(即使是臨時的)。

原创 LeetCode題解-14-Longest Common Prefix

解題思路 題目是要尋找所有字符串中最長的公共開頭部分。我的做法是對於某個位置的字符,看看其他字符串同樣的位置是否也是這個字符,如果是則繼續往後找,如果不是則表示最長的公共開頭部分。爲了避免越界,首先找到字符串的最小長度,用這個位置做邊界,

原创 LeetCode題解-15-3Sum

解題思路 題目要求找到數組中所有a+b+c=0的數字。樸素算法是三層遍歷,複雜度是O(n^3)。 我的思路是首先對數組排序,需要O(nlogn),然後對a,b進行二層遍歷並對c進行二分查找,需要O(logn*n^2)。 最終複雜度是O

原创 LeetCode題解-11-Container With Most Water

解題思路 題意是說,有一堆有序的數字ai,要計算min(ai,aj)*abs(i-j)的最大值,普通的算法就是列舉所有的情況,時間複雜度是O(n^2)。下面介紹一下O(n)的思路。 首先記錄左邊是left,右邊是right,那麼初始化ma

原创 LeetCode題解-16-3Sum Closest

解題思路 題目要求找到數組中a+b+c最接近target的和。思路和15題是類似的,也是排序採用二層遍歷,計算出目標值c,用二分查找,如果找到就可以直接返回,如果沒有找到,那就是找到插入的位置,計算該位置左右兩邊數字(假如存在)得到的和,