原创 AQS簡單源碼說明

AbstractQueuedSynchronizer 所謂AQS,指的是AbstractQueuedSynchronizer,它提供了一種實現阻塞鎖和一系列依賴FIFO等待隊列的同步器的框架,ReentrantLock、Semap

原创 UML箭頭講解

UML定義的關係主要有:泛化、實現、依賴、關聯、聚合、組合,這六種關係緊密程度依次加強,分別看一下 泛化 概念:泛化是一種一般與特殊、一般與具體之間關係的描述,具體描述建立在一般描述的基礎之上,並對其進行了擴展。在程序中是通過繼承

原创 ServletContext與ServletConfig的詳解及差異

ServletContext與ServletConfig的詳解及區別 一、ServletContext詳解 ServletContext是servlet與servlet容器之間的直接通信的接口。Servlet容器在啓動一個Web應

原创 SpringMVC 之

優雅REST風格的資源URL不希望帶 .html 或 .do 等後綴.由於早期的Spring MVC不能很好地處理靜態資源,所以在web.xml中配置DispatcherServlet的請求映射,往往使用 .do 、 .xhtml

原创 jvm參數記錄(持續更新)

java -XX:+PrintFlagsInitial命令查看jvm本機的初始化參數 -Xms:堆最小內存分配 -Xmx:堆最大內存分配 將堆的最小值-Xms參數與最大值-Xmx參數設置爲一樣即可避免堆自動擴展 -XX:+Heap

原创 JVM 堆 VS 本地內存

Java 的類實例一般在 JVM 堆上分配,而 Java 是通過 JNI 調用 C 代碼來實現 Socket 通信的,那麼 C 代碼在運行過程中需要的內存又是從哪裏分配的呢?C 代碼能否直接操作 Java 堆? 爲了回答這些問題,

原创 macOS下編譯openjdk12所踩得坑

macos編譯openjdk12準備環境工具進行編譯導入IDE 準備環境工具 在appstore上下載Xcode 通過xcode-select --install 命令安裝Command Line Tools for Xcode,

原创 內部類總結

java中的內 內部類不是很好理解,但說白了其實也就是一個類中還包含着另外一個類 如同一個人是由大腦、肢體、器官等身體結果組成,而內部類相當於其中的某個器官之一,例如心臟:它也有自己的屬性和行爲(血液、跳動) 顯然,此

原创 PreparedStatement和Statement區別

選擇PreparedStatement還是Statement取決於你要怎麼使用它們。對於只執行一次的SQL語句選擇Statement是最好的. 相反, 如果SQL語句被多次執行選用PreparedStatement是最好的。

原创 java內存計算

在Java中沒有sizeof運算符,所以沒辦法知道一個對象到底佔用了多大的空間,但是在分配對象的時候會有一些基本的規則,我們根據這些規則大致能判斷出來對象大小。 對象頭 對象的頭部至少有兩個WORD,如果是數組的話,那麼三個WOR

原创 Java對象內存佔用情況分析

一個對象實例佔用了多少字節,消耗了多少內存?這樣的問題在c或c++裏使用sizeof()方法就可以得到明確答案,在java裏好像沒有這樣的方法(java一樣可以實現),不過通過jmap工具倒是可以查看出一個對象的佔用內存的大小,這裏介紹

原创 volatile 關鍵字

用在多線程,同步變量。 線程爲了提高效率,將某成員變量(如A)拷貝了一份(如B),線程中對A的訪問其實訪問的是B。只在某些動作時才進行A和B的同步。因此存在A和B不一致的情況。volatile就是用來避免這種情況的。volatil

原创 hibernate雙向多對一映射關係

在電子商務應用中,經常會有這樣的需求:根據給定的客戶,得到該客戶的所有訂單;根據給定的訂單,得到該訂單的所屬客戶。對於這種雙向關聯的情況,在Hibernate應用中,也有人叫多對一雙向關聯,只是叫法不同而已,都是通過映射一對多雙向關聯關

原创 Struts2的模板和主題theme及自定義theme

       Struts2提供了三種主題,ajax, simple, css_xhtml,xhtml,它默認的是xhtml主題,開發時我們一般都選simple。 因爲Struts2所有的UI標籤都是基於主題和模板的,主題和模板是Str

原创 JDBC簡單入門

JDBC是什麼? JDBC API是一個Java API,可以訪問任何類型表列數據,特別是存儲在關係數據庫中的數據。JDBC代表Java數據庫連接。 JDBC庫中所包含的API任務通常與數據庫使用: 連接到數據庫 創建SQL或M