原创 hashmap源碼分析(基於jdk1.8)

概述: jdk1.8 對於hashmap進行比較大的優化,底層實現由之前的"數組加鏈表"改爲"數組+鏈表+紅黑樹",就hashmap的幾個常量用的重要方法和jdk1.8之前的死循環問題展開討論.jdk1.8的hashmap的數據結

原创 線程

13.線程的基本概念,線程的基本狀態以及狀態之間的關係 線程指在程序執行過程中,能夠執行程序代碼的一個執行單位,每個程序至少都有一個線程,也就是程序本身.java中的線程有四種狀態:運行,就緒,掛起,結束. 14.多線程有幾種實現

原创 Jsp

6.說出servlet生命週期 Servlet被服務器實例化後,容器進行init方法,請求到達時運行service方法,service方法自動派遣運行與請求對應的doget或dopost,當服務器決定將實例銷燬的時候調用destr

原创 數據類型

1.string是基本數據類型嗎? java 中String 是個對象,是引用類型 ,基礎類型與引用類型的區別是,基礎類型只表示簡單的字符或數字,引用類型可以是任何複雜的數據結構 ,基本類型僅表示簡單的數據類型,引用類型可以表示複

原创 java中23種設計模式

總體來說設計模式分爲三大類: 創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 行爲型模式,共十一種:

原创 工廠模式,單列模式代碼

工廠模式 代碼如下: 產品類: //抽象產品 abstract class BMW { public BMW(){ } } //具體產品 public class BMW320 extends BMW { public BM

原创 Springmvc執行流程

1、 用戶發送請求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到請求調用HandlerMapping處理器映射器。 3、 處理器映射器找到具體的處理器(可以根據xml配置、註解

原创 框架原理

Ioc原理 Ioc的基本概念:不創建對象,但是描述創建他們的方式.在代碼中不直接與對象和服務連接,但在配置文件中描述哪一個組件需要哪項服務.容器負責將這些聯繫在一起. Ioc(控制反轉)的實現建立在工廠模式,java反射機制和jd

原创 Gc機制

1.那些內存需要回收 內存運行時jvm會有一個運行時數據區來管理內存.他包括5大部分:程序計數器,虛擬機棧,本地方法棧,方法區,堆. 而其中程序計數器,虛擬機棧,本地方法棧時每個線程私有的內存空間,隨線程而生,隨線程而亡,同時,j

原创 Jvm內存原理

Java程序是交由jvm執行,所以java內存區域劃分就是jvm內存區域劃分. Java程序執行過程 如上圖,首先java源代碼會被java編譯器編譯爲字節碼文件,然後由jvm中的類加載器加載各個類等的字節碼文件,加載完畢之後,交

原创 高併發/性能調優/架構

關於性能需要熟悉三個指標:併發用戶,響應時間,tps(每秒事務處理個數)) 比如:單個服務器配置爲32核,64g內存,jvm內存爲6g,性能測試結果:平均響應時間爲200ms,併發用戶爲300個,tps爲1500爲了滿足未來發展需

原创 數據庫優化

數據庫優化 三方面1,數據存儲分區 2,表索引 3,sql語句優化 1,數據存儲分區,我們的理財系統,購買產品的用戶來自不同的區,考慮到產品購買數量接近上億條,單純的爲表建立索引不能滿足性能的需要,因此交易記錄按省份做了列表分區,