原创 Mysql存儲引擎有哪些?如何選擇存儲引擎?

Mysql自從5.5版本以後,默認採用InnoDB存儲引擎,那麼,除InnoDB外,Mysql還有沒有其他存儲引擎?我們可以用 SHOW ENGINES查詢引擎(只需關注4種常用引擎即可:InnoDB、MyISAM、MEMORY、MRG_M

原创 sleep()和wait()、run()和start()、notify()和notifyAll()有什麼區別?

sleep()和wait()有什麼區別?1)sleep()方法是線程類(Thread)的靜態方法,wait()方法是Object類的方法;2)sleep()方法讓調用線程進入睡眠狀態,讓出執行機會給其他線程,但是監控狀態依然保持,時間到了自

原创 Maven打包報錯:http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException

Maven項目打成Jar包,尤其是spring boot項目,很容易就報上述提示錯誤了,這是一個很常見的錯誤,打包過程也很簡單,針對Eclipse,選中項目,右鍵->run as->Maven install即可。但是,如果不注意,就很容易

原创 Java中終止線程有哪幾種方式?

在討論線程終止的方式前,我們先討論一個問題,線程和進程有什麼區別?簡而言之,進程是程序運行和資源分配的基本單位,一個程序至少有一個進程,一個進程至少有一個線程(一個進程可以包含多個線程)。進程在執行過程中擁有獨立的內存單元,而多個線程共享內

原创 Java集合之接口繼承關係圖

Java集合類存放於Java.util包中,該包是我們日常開發過程中最常用到的,主要用到以下3類:set(集)、list(列表包含Queue)和map(映射)。雖然有數組,但是很多時候,對於對象的存儲,我們都是採用集合,因爲集合長度可變,所

原创 Java中有幾種線程池?使用線程池有什麼風險?

Java裏面線程池的頂級接口是Executor,但是嚴格意義上講Executor並不是一個線程池,而只是一個執行線程的工具,它真正的線程池接口是ExecutorService。使用線程池能夠爲了防止資源不足,因爲頻繁創建和銷燬線程會消耗大量