原创 SpringMVC懶加載與自動初始化

本文不討論 Spring 的 @Autowired 懶加載(lazy-init)問題。 今天突然發現一個問題。 在Tomcat啓動時,SpringMVC並沒有加載,而是第一次請求到來時才進行加載。 因爲SpringMVC加載較

原创 刪除MySQL表的SQL語句-DROP-TABLE-簡介

辨析: 在SQL中, DROP 用於刪除表結構等信息, 屬於數據格式定義 DDL的範疇; 而 DELETE 用於刪除數據,屬於數據內容操作 DML 的範疇。 官方給出的 DROP 關鍵字刪除表結構的語法如下: DROP [TE

原创 spring發送Email-驗證碼-圖片-附件-解決亂碼

本文簡要介紹如何通過Spring框架的支持,通過QQ郵箱來發送郵件,包括簡單文本,附件、以及內聯圖片、HTML以及HTTP圖片。 spring-context-support很早就內置支持郵件發送。 當然, 官方文檔明確指出,

原创 Java進階知識 - 多線程與線程間通信

CountdownLatch, CyclicBarrier 分別適合什麼場景呢? 大部分情況下, 子線程只需要關心自身執行的任務. 但在某些複雜的情況下, 需要使用多個線程來協同完成某個任務, 這就涉及到線程間通信(inter

原创 Java坑人面試題系列: 變量聲明(中級難度)

作用域規則與變量覆蓋面試題 Java Magazine上面有一個專門坑人的面試題系列: https://blogs.oracle.com/javamagazine/quiz-2。 這些問題的設計宗旨,主要是測試面試者對Java

原创 Linux系統命令 - 查看內存使用情況

一、 查看內存使用情況 在Linux系統中,大部分操作都通過命令行來完成,因爲大部分情況下不開啓圖形界面。 在服務器環境,則只能通過shell執行操作。 下面介紹查看內存使用情況的相關命令。 包括物理內存(RAM)和交換內存(sw

原创 Java坑人面試題系列: 線程/線程池(高級難度)

ExecutorService 接口及相關API細節詳解。 Java Magazine上面有一個專門坑人的面試題系列: https://blogs.oracle.com/javamagazine/quiz-2。 這些問題的設計

原创 Java坑人面試題系列: 比對while與for循環(中級難度)

Java Magazine上面有一個專門坑人的面試題系列: https://blogs.oracle.com/javamagazine/quiz-2。 這些問題的設計宗旨,主要是測試面試者對Java語言的瞭解程度,而不是爲了用彎彎

原创 辨析:自旋鎖與信號量

自旋鎖(Spinlock) 信號量(Semaphore): 1. 自旋鎖與信號量簡介 自旋是鎖的一種實現方式,通過忙等待(“自旋,spinning”)來實現【例如通過while循環持續請求獲取鎖】。 信號量的概念比鎖的範圍更大

原创 JVM技術細節: HotSpot的內存模型

1、對象無句柄 在早期的JVM版本,例如 Classic VM 實現中,使用了 間接句柄(indirect handle) 來表示對象引用。 雖然使用這種方式使得垃圾收集器在重定位對象(relocating)時非常方便,但卻導致了

原创 Java坑人面試題系列: 包裝類(中級難度)

Java Magazine上面有一個專門坑人的面試題系列: https://blogs.oracle.com/javamagazine/quiz-2。 這些問題的設計宗旨,主要是測試面試者對Java語言的瞭解程度,而不是爲了用彎彎

原创 解析一個Java對象佔用多少內存空間

說明: alignment, 對齊, 比如8字節的數據類型long, 在內存中的起始地址必須是8的整數倍。 padding, 補齊; 在對象所佔據空間的末尾,如果有空白, 需要使用padding來補齊, 因爲下一個對象的起始位置

原创 Java進階知識 - 線程間通信

CountdownLatch, CyclicBarrier 分別適合什麼場景呢? 大部分情況下, 子線程只需要關心自身執行的任務. 但在某些複雜的情況下, 需要使用多個線程來協同完成某個任務, 這就涉及到線程間通信(inter-t

原创 Web開發團隊常備工具

Web系統的性能問題會影響企業的各項業務。 漏洞太多,運營團隊就只能疲於奔命。 缺少吸引力, 產品團隊則會受困於用戶留存率。 改不完的BUG, 開發團隊就沒時間進行新功能開發。 業務人員的效率跟着提升不上去。 技術經理不能清楚證明團

原创 升級https - 解決系統被網絡運營商植入廣告等問題

情景回顧 福建泉州的客戶反饋, 說系統使用不正常, 經常提示 “網絡錯誤”, 或者點擊某些按鈕時會進行頁面跳轉。 讓客戶試過各種“萬能”手段: 比如清緩存, 換瀏覽器, 換電腦等等,問題依然會復現。 通過QQ遠程桌面連接客戶的電腦,