原创 macos編譯安裝nginx

網上主流的方法安裝nginx是通過brew方式,但是這種方式安裝之後文件目錄太零散,不方便查看和訪問,所以這篇文章使用源碼安裝 可以先看一下安裝完成之後和brew安裝完成後的區別,nginx的目錄conf、logs、sbin、

原创 java單元測試(Junit4 + Mockito + MockMvc)

瞭解單元測試概念 什麼叫單元測試? 單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。Java裏可測試單元單元——>java類 單元測試的意義 軟件質量最簡單、最有效的保證; 是目標代碼最清晰、最

原创 nginx啓動、停止、重啓命令

啓動 cd usr/local/nginx/sbin 注意:usr/local/nginx 是安裝目錄 ./nginx 停止 查詢nginx主進程號 ps -ef | grep nginx 從容停止 kill -

原创 IDEA調試Tomcat源碼方法

最近在擴充自己的java技術棧,瀏覽了網上的很多IDEA導入源碼的教程,這裏做一個詳細的注意點總結 下載tomcat源碼 https://tomcat.apache.org/download-80.cgi 下載tomcat 8

原创 java內存區域

概述 Java虛擬機在執行Java程序的 過程中會把它所管理的內存劃 分爲若干個不同的數據區域,通常包括程序計數器、虛擬機棧、本地 方法棧、Java堆、方法區(運行時常量池)、直接內存 各個區域的作用 -------------

原创 java虛擬機簡介

什麼是java虛擬機? 虛擬機是一種抽象化的計算機,通過在實際的計算機上仿真模擬各種計算機功能來實現的。Java虛擬機有自己完善的硬體架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。JVM屏蔽了與具體操作系統平臺相關的信息,

原创 垃圾回收器和內存分配策略

GC基本概念 GC是垃圾收集的意思,內存處理是編程人員容易出現問題的地方,忘記或者錯誤的內存回收會導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測對象是否超過作用域從而達到自動回收內存的目的,Java語言沒有提供

原创 java併發容器

併發List(Vector & CopyOnWriteArrayList) ArrayList 不是線程安全的。因此,應該儘量避免在多線程環境中使用ArrayList。如果因爲某些原因必須使用的,則需要使用Collections.

原创 HashMap詳解

前言 Map 這樣的 Key Value 在軟件開發中是非常經典的結構,常用於在內存中存放數據。本文主要詳解HashMap的結構和併發下HashMap的問題 說明 HashMap在併發環境下會有併發問題,所以在併發生產環境下請使用

原创 ConcurrentHashmap詳解

簡介 ConcurrentHashMap是hashMap的高性能併發版本 高性能的原因 ConcurrentHashMap允許多個修改操作併發進行,其關鍵在於使用了鎖分離技術。它使用了多個鎖來控制對hash表的不同部分進行的修改。

原创 構造者模式

概念 構建者模式 (Builder Pattern) 構建者模式的意義 實際上,在實際開發中,有時候Java構造器編寫會有一個問題,由於JVM在編譯期是通過方法名和參數類型以及個數來確定方法,當構造器的參數個數和類型都一致時,無法

原创 Lombok

初識Lombok 說到Lombok不得不提一個非常有趣的Java背景故事······ 據說當年Java的前一個名稱Oak在註冊時候已經被另一家公司使用了,所以Oak不得不面臨改名的命運,於是就召開了改名大會,員工們各抒己見,最後

原创 java單元測試(Junit4 + MockMvc)

瞭解單元測試概念 什麼叫單元測試? 單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。Java裏可測試單元單元——>java類 單元測試的意義 軟件質量最簡單、最有效的保證; 是目標代碼最清晰、最

原创 類與類加載器

概念 虛擬機jvm將 " 通過一個類的權限定名來獲取這個類的二進制字節流 " 的動作放到虛擬機外部實現,以便編程人員根據自身需求決定如何去獲取所需要的類,實現這個動作的代碼模塊稱爲"類加載器" 類與類加載器 類加載器通過一個全限定

原创 Nginx安裝、使用及配置詳解

本問包含Nginx的安裝、配置、功能、原理及使用方式 Nginx安裝、使用及配置詳解 使用brew下載安裝,沒有brew請先安裝神器brew brew search nginx brew install nginx 啓動