原创 java常見工具庫培訓

目前項目中常見的工具庫有apache commons,google guava,再算上spring的話,需要自己從頭開始寫工具類的情況大大減少。 爲了給廣大童鞋普及一下工具庫用法,減少無用功(還可能因爲實現的不好留後遺症的),這

原创 考察對類加載的理解(問題篇)

類加載和程序運行是有些關係的,不妨來測試一下。 難度:中級 獨立進程篇 假設有下面的類文件: // Main.java package com.github.mccxj.test; public class Main {

原创 WebSphere數據源中的連接被意外關閉案例

頻繁創建連接的現象 前陣子維護反饋說,oracle數據庫每秒創建連接數過高,而主要來源來自於WebSphere集羣所在的主機。 按理說,使用連接池的應用,連接是不會很頻繁的。追溯一下所在主機的程序,發現可疑對象是一個使用jdbc

原创 考察對類加載的理解(答案篇)

獨立進程篇 首先需要知道類加載器是怎麼回事? 在Java裏邊,類加載器就是用來加載類的,然後纔是執行代碼。 Java裏邊默認有啓動類加載器(boot),擴展類加載器(ext),和應用類加載器(app)。 其中boot就是用來加

原创 結合狀態機的開發風格

本文主要以XXX的html5版本爲藍本,討論結合狀態機開發的思路和實踐方式。狀態機選型使用statechart.js。 起步知識 狀態機介紹,請參考Statecharts and Angular.js statechart.js

原创 常見DES實現陷阱

DES要點說明 DES走的是分組加密,每次處理對象的是8位byte,所以對字符串加解密的時候,會涉及字符編碼格式和補齊8位的問題。 DES的密鑰是固定8位的byte的,其中前7位是加解密用的,最後一位是校驗碼。 3DES的增強型

原创 LeetCode題解-6-ZigZag Conversion

解題思路 這個題目我是分2種情況來考慮的,考慮首行和最後一行,每個數的間隔是2*(numRows-1), 對於中間其他行,那麼的間隔是2*(numRows-1)-2*row或者2*row, 其中row表示當前所在的行號。算法是逐行

原创 性能優化:Trove集合庫

1 初見Trove 昨天在Startup News上看到一篇文章:優化技巧分享:把內存消耗降低至原來的1/20。裏邊提到了一個案例,Java應用中如何降低內存消耗,總結了他的優化過程: 開始時,存放1.3M個Person對象,消

原创 Integer位操作技巧解析

整數二進制左邊1最早出現的位置 public static int highestOneBit(int i) { // HD, Figure 3-1 i |= (i >> 1);

原创 Java基本類型-整型解讀

java的基本類型包括以下幾類: 整型 byte short int long 浮點型 float double 字符型 char 布爾型 boolean 它們都有對應的包裝類型(如果沒有特殊說明,下面都是說包裝類型),其中整

原创 LeetCode題解-1-Two Sum

解題思路 這主要是給第一次接觸LeetCode的童鞋準備的。 題目說給定一個整型數組和一個數字,希望找到2個位置,這2個位置的和等於給出的數字。解題思路很簡單,用一個兩層遍歷窮舉就可以了,如有疑問請參考源碼。 參考源碼 publi

原创 LeetCode題解-5-Longest Palindromic Substring

解題思路 題目是查找最長的迴文子串。 如果某個字符串是一個迴文串,那麼形式可能是cbabc,或cbaabc的形式,要找到最長的迴文子串,可以以某個字符a開始,區分長度是奇數還是偶數,向左右兩邊一直比較,直到找到不同的字符。找到的字

原创 LeetCode題解-3-Longest Substring Without Repeating Characters

解題思路 首先要讀懂題目,它要求的是找到最長的子串,並且子串中沒有出現重複的字符。 我的想法,是用一個map存儲每個字符最後出現的位置,還要有個變量start,它用來記錄上一次出現重複的位置,如果當前字符上一次出現的位置比star

原创 LeetCode OJ題解系列

其實LeetCode OJ之前已經做過了,近日上去看了一下,發現題目增加了很多。我打算重新刷一遍,並把題目思路和結果放到博客上來,當做一次刷題記錄吧。 計劃會包括以下內容: 題目id,題目名稱,題目中文意義 解題思路 參考源碼

原创 Web開發利器-Fiddler簡介

1 什麼是Fiddler? Fiddler是一個http調試代理,以代理服務器的方式,監聽系統的Http網絡數據流動, Fiddler可以也可以讓你檢查所有的http通訊,設置斷點,以及Fiddle所有的“進出”的數據。 Fi