原创 webuploader上傳、回顯、預覽、刪除

因爲webuploader不支持已上傳文件回顯,尤其是文件上傳成功之後,旋轉、刪除功能,原有代碼是隱藏的。修改這些功能花費了不少時間、特此記錄下。以下只展示關鍵代碼,完整代碼在github上upload.js html部分 <%

原创 HashMap原理深入分析

引言     哈希表是基於Map接口實現的實現類。 這個實現類提供所有可選的Map操作,並允許空值和空鍵。HashMap大致相當於Hashtable,區別之處在於它不是線程安全的,並且允許空值和空鍵。這個類不保證Map的順序,特別

原创 macbook maven編譯版本與實際環境變量不符問題解決(mavenrc)

最近在編譯netty源碼的時候,因爲源碼要依賴jdk1.8以上,可是我本地有三個java版本。 所以我手動把.bash_profile裏的JAVA_HOME路徑設置成了jdk1.8.0_181的路徑。 但是編譯代碼後,一直報錯,顯示m

原创 【譯】SEDA: An Architecture for Well-Conditioned, Scalable Internet Services

                              Matt Welsh, David Culler, and Eric Brewer                                Computer Scienc

原创 淺談volatile變量的理解

原文    本文爲菠蘿大象原創,如要轉載請註明出處。http://www.blogjava.net/bolo 在Java併發編程裏面,volatile是個很重要的概念,大象也來講講自己對它的理解。     以前曾經有段時間我一直沒搞明白v

原创 負載均衡算法思想

1)輪訓(Round Robin)法 此算法將請求按順序輪流的分配到後端服務器,他均衡的對待後臺每一臺服務器,而不關心服務器實際的連接數和當前的系統負載 public class RoundRobin { private

原创 ThreadLocal源碼與設計思想深入分析

最近突然想到ThreadLocal雖然能夠爲每個線程提供一個變量的副本,實現線程之間變量操作的隔離性、互不影響。但是它卻不能保證狀態變量的線程安全性,也就是說如果ThreadLocal爲每個線程保存的變量原本就是線程不安全的,那麼在多線程

原创 java實現單鏈表反轉

實現單鏈表反轉應該有兩種思路,第一種是從首節點開始反轉,一直到尾節點結束,一種是從尾節點開始反轉,一直到首節點結束。 一、由首節點開始 如上圖所示,首先節點1與節點2發生發反轉,也就是節點2的next指向節點1,節點1因爲最終會變

原创 JAVA內部類詳解

最近在看hystrix源碼的時候,發現Netflix的牛人們,使用了大量的匿名內部類。以便更好的能夠閱讀,於是又回頭翻了翻《java編程思想》,書中所講、自己理解,記錄如下。 內部類的定義:     將一個類的定義放在另一個類定義的內部,

原创 Timer的缺陷 用ScheduledExecutorService替代

原文地址 繼續併發,上篇博客對於ScheduledThreadPoolExecutor沒有進行介紹,說過會和Timer一直單獨寫一篇Blog. 1、Timer管理延時任務的缺陷 a、以前在項目中也經常使用定時器,比如每隔一段時間清理

原创 初識netty

Netty是一個異步事件驅動的網絡應用程序框架,用於快速開發可維護的高性能協議服務器和客戶端。 Netty是一個NIO客戶端服務器框架,可以快速輕鬆地開發協議服務器和客戶端等網絡應用程序。它極大地簡化了TCP 和UDP套接字服務器等網

原创 js綁定onblur事件

對於頁面上文本框驗證時,我們需要給文本框添加事件。 原生JS方法: 添加:document.getElementById(“field”).setAttribute(“onblur”, “check()”); 刪除

原创 基於Zookeeper的路由和負載均衡實現思想

一)服務註冊中心思想 如上圖所示,Zookeeper上的服務配置中心分成三層結構,最上面一層爲根節點,用來聚集服務節點,通過他可以查詢到所有的服務,而服務名稱下掛載的是服務提供者的服務器地址。根節點和服務名稱採用的是Zookeepe

原创 servlet監聽器Listener

原文地址 Listener採用了觀察者模式(24種模式之一),Listener是servlet的監聽器,他可以監聽客戶端的請求、服務器端的操作等, 通過監聽器,可以自動激發一些操作。比如:監聽在線用戶數量 當增加一個HttpSessio

原创 解決fastjson循環引用問題(死循環)

在雙向映射的一方向中添加“@JSONField(serialize=false)”。 @JSONField(serialize = false) public java.util.Set<CmsDocReceiveFile> getCms