原创 記錄一次SSH框架報錯解決:no session for current thread

在開發電子化自動支付的開關功能過程中,遇到了一個很有意思的問題,no session for current thread,查找資料,這句話的大概意思是說當前線程不存在會話管理,查找代碼配置文件,採用的事務管理是通過註解的方式進行配置管理

原创 Tomcat假死問題排查:java.lang.OutOfMemoryError: PermGen space

電子化上線了一個新版規範以後,竟然給我拋出一個我都沒想到的異常,昨晚臨近下班的時候,一個業務員打電話說電子化系統點擊無反應,我去生產試了試,果然如此,換了幾個瀏覽器,登陸的時候都是在轉圈圈(等待響應)。。趕緊登陸服務器查了查,尼瑪,進程還

原创 Mysql中的視圖是什麼?有什麼作用?

Mysql中的視圖,其實是一個虛擬表,使用時動態檢索查詢數據,如何理解這個概念呢?我們先建立基礎表,語句如下: DROP TABLE IF EXISTS `user_info`; CREATE TABLE `user_info` (

原创 隨手.toString()帶來的一個毀滅性災難

生產有一個項目需要進行一點點改動,因爲改動不大,所以他便沒在測試環境進行測試,因爲測試環境測試比較麻煩,而且生產這個改動就是針對model增加一個字段,然後某個分支進行賦值,操作起來比較簡單,所以就進行改造了。 不出意外的,項目gg了,他

原创 看了自己某些博客,都懷疑是不是自己寫的

早期寫博客,主要的目的是爲了記錄,方便自己查閱,當時有些東西還是似懂非懂,所以很多內容都是查閱別人資料寫的,當時覺得自己寫的甚好,長篇長篇的,那個時候,爲了寫Mysql基本知識,還查了很多資料,花了很多功夫,現在看來,很多點都用不到,而且

原创 Set集合實現類之HashSet、TreeSet和LinkedHashSet

Set集合的實現類有3種,分別是HashSet、TreeSet和LinkedHashSet,而這3種實現類都具有Set集合的共性: 1)都不允許元素重複,適合存儲無序元素 2)對象相等的本質是對象HashCode值相等,所以必須重新Has

原创 常見的設計模式有哪些?實際開發中你用了什麼設計模式?

對於設計模式,相信大多數人都有了解,或爲了面試,或爲了實際開發,但是對於大多數人來說,實際開發中,真正用設計模式的地方,少之又少。最主要的原因,還是因爲我們對設計模式並未真正的理解。那麼,如何理解設計模式呢? 設計模式就是那些大佬經驗設計

原创 Shell腳本取前天、昨天和今天的日期

Shell腳本是經常會用到的,在用腳本計算昨天的日期的時候,發現把這個命令給忘了。。 // 取前天的日期YYYYmmdd格式 DATE_SET=`date -d "2 days ago" +%Y%m%d` echo ${DATE_SE

原创 List集合實現類之ArrayList、Vector和LinkedList

List集合的實現類有3種,分別是ArrayList、Vector和LinkedList,下面我將對這3個實現類的區別進行詳細講解。 1)ArrayList ArrayList繼承自AbstractList而實現了List,它是最常用的

原创 Java書單推薦(珍藏)

本文主要推薦一些筆者看過覺得不錯的書單,從簡到難,且持續補充,另附上資源提取碼,有需要的童鞋,可以自行提取 書單分享鏈接如下: 鏈接: https://pan.baidu.com/s/175j3ugvPZsZ2CvIih1xcwA 提

原创 我們爲什麼要學習類加載機制?在實際編程中有什麼用?

說到類加載機制,又不得不提Java代碼執行過程,源碼(.java)文件被編譯成字節碼(.class)文件,再由Jvm進行後續處理。其實這個後續處理過程,就是JVM的類加載機制,簡單來說,就是把.class文件裝載到內存,進行校驗、解析、轉

原创 犯傻:Map移除元素,怎麼可以用同一個Iterator做二次迭代呢?

有一個場景是這樣的,我需要在一個Map中取走兩個值,然後把取走的這兩個鍵值對移除,我犯了一個特別蠢的錯誤,竟然採用了這樣的方式(Iterator做二次迭代): import java.util.HashMap; import java.

原创 靜態代碼塊是如何執行的?一般用在什麼地方?

Jvm的類加載機制中,我們說過有一個階段是初始化(Initialization),這個階段的應用類加載器(Application or App ClasLoader)會收集所有的靜態代碼塊並執行,而且只執行一次。所以這裏有一個誤區,很多人

原创 什麼時候該用類方法(靜態方法)?什麼時候該用實例化方法?

一個新來的同事,寫Java方法時,通篇都是static修飾,原因只是因爲不需要new對象就可直接調用。一個類中抽象出來的方法,用static修飾無可厚非,但是一般而言,抽象出來的公共方法,大多都應該放在util工具類中,而不是直接寫在該類

原创 這麼不用心的簡歷,我還是第一次看到

不知不覺,我已成了公司內的Java老員工了,上週面試了幾位小夥伴,其中有兩個這周入職了。其中有一個人,我印象特別深,不是因爲他表現特別好,而是因爲他的簡歷寫的太差了,我都不知道這種簡歷怎麼會被HR給過了,我們可以看一眼簡歷的截圖,這個簡歷