StringUtils isBlank 以及 isEmpty 的差別
常用的 Apache Commons StringUtils 裡有兩個常常容易搞混的方法 isBlank 以及 isEmpty。
常用的 Apache Commons StringUtils 裡有兩個常常容易搞混的方法 isBlank 以及 isEmpty。
Database connection pool 在應用系統中是個普遍會採用的設定,使用 Connection pool 的好處就像使用環保餐具一樣,用過的 Connection 不丟棄,每次重新建立 Database Connection 的成本太大,所以應用系統中通常都會設定 Database Connection Pool。
因為 Hibernate 會遇見不同的 Database (Oracle, MSSQL),所以GeneratedValue 會有以下三種策略
What is unsigned type unsigned type 是說,假設 int 能夠放 100 ~ -100,給了 int unsigend 就能夠處理 0~ 200 的數值,不需透過更大的資料型別例如 Long 來解決。 像 C 語言是有支援 unsigned type , 沒有 unsigned type 的缺點是必須要花兩倍的 memory 來處理一個相似的問題, 另外一個是可讀性的問題,當看到一個變數是 unsigend,就能清楚的知道,肯定不會有負數出現。 Why Java didn’t support unsigned type 至於為什麼 Java 不支援,可能 有幾個原因: 我認為比較有可能的理由,是單純化這種原始型別,不常用的情境,就不要過度設計了。
Java 中 String 是常常在操作的類別,字串在記憶體的管理上有一點點的特殊, 當透過 String name = “Balicanta”; 來宣告一個字串的時候,其實會到 String Pool 裡面找是否有一樣的字串,如果有那就不會去建立一個新的字串,而會讓兩個 reference 指到同一個位置,以確保 memory 使用的效率。 String Immutable Java 中的字串一旦宣告,他就不會再被變動了,這樣設計主要有三個理由: System.identityHashCode 作用 這個方法的作用是,找到一個 Object 的 HashCode。意思是說常常會複寫掉 Object 提供的 hashcode,讓我們看不出 Object 的 hashCode 是什麼,identityHashCode 可以直接印出 Object 的 HashCode,所以可以透過 identityHashCode 來驗證是否真的有 String Pool 的概念。 上面的例子說明幾件事: 在過去 JDK 6 String Pool 是會占用 PermGen 的空間,但從 JDK 7 開始把 String Pool …
Java 到底是 Pass By Value 或是 Pass by Reference,可以透過各種角度來討論。
常常我們都以為用 Vim 是為了用超快速度來輸入文字, 或許可以透過不一樣的想法來思考。
記得以前用Linux的時候,只要把設定寫在 .bashrc 裡面,系統就會自己讀入。
怎麼在MacOS上,寫一些設定在 .bashrc 裡面,都不理我,我不想每次都 source ~/.bashrc !
內心始終都有這個疑問,過程中不時有工作的伙伴告訴我們,你都不寫註解,人家要怎麼看得懂。問題反過來問,難到我寫了註解,你就看得懂了嗎?
討論一種程式語言,也許可以從幾個方向討論:軟體品質、支援的 Lib、和其它語言的整合,工程師的使用體驗。