原创 IDEA創建SpringMVC工程的jsp文件中EL表達式取不到值,直接${}原樣打印出來

一、問題描述    IDEA創建SpringMVC工程,在jsp文件中EL表達式取不到值,直接將EL表達式打印了出來。         二、 原因       Intellij Idea 在創建Maven工程時選擇的webapp框架時自

原创 java.lang.NoClassDefFoundError: org/springframework/orm/hibernate3/support/HibernateDaoSupport

一、 問題     Hibernate查詢數據庫編譯通過,但運行時報錯     嚴重: ContainerBase.addChild: start:  org.apache.catalina.LifecycleException: Fai

原创 泛型<T>和 <?> 的區別

    技術交流羣裏有小白問這個問題,並轉發了一些blog給我看。 感覺寫的不夠通透,而且有錯誤的地方,特地寫一下。   1. Class<T> 表示一個定義了一個泛型          這個類型不確定, 但是不能同時變成兩個類型    

原创 手寫簡易RPC框架

    分佈式技術的本質可以簡單地概括爲兩部分—— 任務拆分 + RPC     1. 將一個任務流程拆分成幾個部分,需要扛壓的部分做成集羣     2. RPC調用 (特別是通信)     再概括點說分佈式的本質就是RPC,也不算過分。

原创 IDEA 報 cannot access class xxx

  IDEA順手寫一個小Demo。  先寫一個interface MyInterface, 然後寫實現類 MyInterfaceImpl,結果在 MyInterfaceImpl 中始終報錯誤 cannot access class MyI

原创 架構是進化出來的

    一個網站的架構是進化出來的,不是設計出來的。     架構是爲了業務服務,在業務沒有達到足夠大的量級之前,沒有必要爲了架構而架構。只有隨着業務的規模變大,才逐漸有了架構的進化。     以一個在線電商平臺爲例,講一下架構的進化過程

原创 lua.c:82:31: fatal error: readline/readline.h: No such file or directory

目錄 坑(一)添加libreadline-dev 包 坑(2)顯示缺少 libreadline6-dev, 於是又用命令  坑(3) 解決辦法:     在ubuntu16.0.4上安裝lua 5.3.5,運行命令 make linux

原创 畫圖趣解CLH鎖的實現原理

    面試題上看到CLH鎖的實現原理,想找視頻看看沒找到,各種博客寫的也很抽象,缺乏形象感不易理解。於是就自己寫一個,爭取做到通俗易懂。     CLH鎖是自旋鎖的一種實現方式 (java自旋鎖的4種實現方式),實現了自旋鎖的公平性,即

原创 HashMap原理解析——爲啥線程不安全?

目錄 一、 HashMap的數據結構 二、HashMap的功能實現源碼解析 1. hash方法 2. 由鏈表改爲紅黑樹 3.擴容 4. 擴容後的新位置 5. 搬家 三、 怎樣將HashMap升級爲線程安全的 1. HashMap爲啥線程不

原创 Java可見性、原子性、有序性的本質——CPU緩存模型

    我們來看一下併發編程中的原子性、可見性、有序性是怎麼來的。     早期CPU的頻率比內存的頻率要高很多,如果CPU每次都從內存取數據的話,就會造成快車等慢車的狀態,嚴重影響CPU的性能。爲了解決這個問題,CPU中引入了緩存。緩存

原创 Dubbo的一種負載均衡算法(rtt排序)

一、 題目要求:     題目來自阿里雲中間件性能挑戰賽,找一種性能最佳的Dubbo負載均衡算法。      provider的性能要求 二、分析     其實一個比較能代表當前provider性能的指標就是rtt(round-trip

原创 圖解設計模式(13) 中介者模式

一、應用場景     每一個類都有不同的職能,如果這些職能要相互調用所有其他功能的類,會使得它們的關係變得複雜化( )。這時就可以在它們中間加入一個"Boss",負責協調調度各種關係,使關係變得簡單。     例如,在一個公司裏有研發、

原创 圖解設計模式(11) 策略模式

一、 應用場景     商場對於不同的客戶採用不同的打折策略;     施工對於不同的地形地貌採用不同的施工方法;數據處理針對不同批量的數據選取不同的算法等。     對於常用的     if() {     }else if(){  

原创 圖解設計模式(12) 模板模式

一、應用場景     用於一些具體流程固定,但是其中的某一個/一些步驟內容有變動的情形。     如:去銀行辦理業務 分3個步驟:     模板方法定義了一個操作中的流程骨架,將某些步驟延遲到子類中實現。這樣,子類可以在不改變算法結構

原创 圖解設計模式(5) 適配器模式

一、適用場景      如生活中鍵盤有USB接口的和ps/2接口的。我們手上有一個ps/2接口的鍵盤但筆記本電腦只有USB接口,我們只要找一個接口轉換器就能讓鍵盤在筆記本電腦上使用了。                   適配器模式是將一