原创 Java replace和replaceAll的區別

replace和replaceAll都是替換全部,區別是前者是字符替換,後者是正則表達式替換, replace("aa$bb","#")的結果是“aa#bb”, replaceAll的結果是aa$bb#, 因爲在replaceAll

原创 Spring InitializingBean接口的作用

Spirng的InitializingBean爲bean提供了定義初始化方法的方式。InitializingBean是一個接口,它僅僅包含一個方法:afterPropertiesSet()。 凡是繼承該接口的類在初始化bean時都會執行

原创 Mysql使用注意事項

1.mysql中int(m)的m是顯示長度,實際保存長度是2的32方,即4個字節。 2.varchar(100) not null default '***',當insert語句中沒有name字段時以default的值爲準,當inser

原创 Java中int,Integer,equals,==的區別

public class TestClass {public static void main(String[] args) {Integer a=

原创 程序變量爲什麼不能以數字開頭,也不能用關鍵字和保留字

詞法分析基本上分三步, 第一步把詞法單元分割出來, 第二步判斷詞性,是數字,是普通變量,是關鍵字,還是是類型變量... 第三步確定其符合本詞性所限定的語法規則,然後進行下一步的處理 如果第一個字符就能判斷詞性的話,接下來就是

原创 四種線程池類型

ExecutorService threadPool = Executors.newFixedThreadPool(5); ExecutorService threadPool4 = Executors.newSingleThreadE

原创 ThreadPoolExecutor講解

public static void main(String[] args) { final ExecutorService threadPool = new ThreadPoolExecutor(

原创 生產者消費者模式

//wait 和 notify public class ProducerConsumerWithWaitNofity { public static void main(String[] args) { Res

原创 java多線程併發系列之閉鎖(Latch)和柵欄(CyclicBarrier)

閉鎖(Latch): 一種同步方法,可以延遲線程的進度直到線程到達某個終點狀態。通俗的講就是,一個閉鎖相當於一扇大門,在大門打開之前所有線程都被阻斷,一旦大門打開所有線程都將通過,但是一旦大門打開,所有線程都通過了,那麼這個閉鎖的狀態就失

原创 RocketMQ命令整理

http://jameswxx.iteye.com/blog/2091971

原创 Spring編程式事務

Spring編程式事務: spring 的 org.springframework.transaction.support.TransactionTemplate可以實現編程式事務: TransactionTemplate transac

原创 Mybatis #和$的區別

#會進行預編譯,其實現是通過JDBC的PreparedStatement類,mybatis啓用了預編譯功能,在sql執行前,會先將上面的sql發送給數據庫進行編譯,執行時,直接使用編譯好的sql,替換佔位符“?”就可以了。因爲sql注入只

原创 java 字符串的intern方法

     String a = new String("java").intern();     String b = new String("java").intern();     System.ou

原创 java中方法的形參產生的是對象的副本

class SubTest{int a;String b;public SubTest(int a, String b){this.a = a;this.b = b;} } public class My

原创 Java hashTable和hashMap的區別

1.官方推薦使用HashMap; 2.HashTable線程安全,HashMap非線程安全,但效率較高; 3.遍歷方法上略有不同; 4.HashTable的鍵和值都不能存NUll,HashMap可以; 5.HashTable的默認初始ha