原创 從零開始搭建springboot項目3:Mybatis+Druid+lombok

這一步是爲了配置數據庫 這裏我使用的是常見的mysql+MyBatis+Druid的配置 使用mysql數據庫,通過MyBatis連接(實質也是JDBC),使用Druid數據源監控。 1.繼續在Pom.xml編寫依賴包

原创 從零開始搭建springboot項目1:創建springboot項目

1.創建項目 通過左上角:File->New-> Project       2.點擊Next進入命名階段 這裏主要修改命名這兩個。Group是自己的包名,Artifact是設置項目的名字。下面的一些字段會跟這兩個變的,注意不要大寫

原创 深入理解jvm學習筆記02:自動內存管理機制之GC與內存分配策略(上)

1.概述 垃圾收集(Garbage Collection,GC)其實年代比java久遠。 GC需要考慮的是三件事:哪些內存需要回收、什麼時候回收、如何回收。 而我們主要做的虛擬機性能調優,主要處理的就是方法區和堆的GC回收優化,其它內存區

原创 小工具使用:用jad反編譯calss文件到java文件

前言:今天搞了個烏龍,公司項目要進行修改,然後我忘記項目放哪了(之後找到了),一度認爲找不到了,然後就直接去服務器的tomcat裏面拿了一份自己配置的項目的包,解壓完後雖然拿到了前端方面的代碼文件,但是後端由於已經編譯成了class文件

原创 Thinking in java學習筆記21:第二十一章(併發-完結)

併發下面的一章是仿真,也就是模擬真實場景的一些案例,這裏我就不說了 繼續再另外一章 9.性能調優 這邊就不比較各類互斥技術了。 9.1 免鎖容器 在講免鎖容器的時候先介紹一下同步容器 9.1.1 什麼是同步容器? 同步容器類:方法通過sy

原创 從零開始搭建springboot項目2:熱部署

熱部署是什麼? 熱部署:熱部署就是在服務器運行時重新部署項目。 總結起來就是實時更新,如果不設置熱部署,當你修改的時候,你需要重新啓動來更新,但熱部署後修改代碼它自動會重新部署。 下面是步驟: 1.導入熱部署的包 在pom.xml文件上加

原创 EffectiveJava學習筆記33:序列化(上) 其它方法優先於java序列化+謹慎地實現Serializable接口+自定義的序列化形式

對象序列化的概念:是java的一個框架,用來將對象編碼成字節流(序列化),並從字節流編碼中重新構建對象(反序列化) 1.其它方法優先於java序列化 序列化其實有很大風險,因爲如果類有序列化的話,那麼它可以將類路徑上的任何類型的對象都

原创 Thinking in java學習筆記20:第二十一章(併發-下)

繼續上一章內容 7.新類庫中的構件 書中講的是java SE5版本中,引入java.util.concurrent包的一些新類,雖然對於現在而言,可能不新的,但還是學習一下。 7.1 CountDownLatch CountDownLat

原创 Thinking in java學習筆記10:第十二章(通過異常處理錯誤)

書中標了一句話:java的基本理念是“結構不佳的代碼不能運行” 1.基本異常 異常情形:阻止當前方法或作用域繼續執行的問題。 例:throw new NullPointerException(); 對於異常參數,標準的異常類都有兩個構

原创 EffectiveJava學習筆記31:併發(中)-多種方式優先於線程、併發工具優先於wait和notify、線程安全性的文檔化

1.executor、task、stream優先於線程   1.1 什麼是executor? Executor Framework是java平臺一個包(java.util.concurrent)的內容. 它是一個很靈活的基於接口的任務執行

原创 深入理解jvm學習筆記01:自動內存管理機制之java內存區域與內存溢出異常

第一章主要講java發展時,jvm發展史,這裏就跳過了 1.java內存區域與內存溢出異常概述 由於java的虛擬機自動內存管理機制,所以我們大部分情況下不會出現內存泄露和內存溢出的問題,但一旦出現,還是的有排查異常解決問題的能力,這裏就

原创 Thinking in java學習筆記16:第十九章(枚舉類型)

1.基本enum特性 1.1首先介紹了3個方法 values():獲取enum實例的數組 ordinal():獲取enum實例在聲明時的次序 name() :獲取enum實例聲明時的名稱 public class EnumTest {

原创 Git之創建Github分支

這裏講講上傳文件後我創建分支的故事。 之前有寫過簡單的github上傳,這裏是繼續在那個倉庫上做個分支上傳其它文件。 步驟也很簡單: 1.在git上創建分支 首先還是繼續對着文件夾右鍵,選擇Git Bash Here 其次還是使用 $ g

原创 HeadFirst筆記02:觀察者(observer)模式

觀察者模式是什麼? 簡單來說觀察者模式就是訂閱思想, 舉例:訂牛奶 我們訂了牛奶,我們就是觀察者了,然後牛奶公司會推送(發送)牛奶過來。 觀察者的好處在於: 1.不需要自己去獲取(比如牛奶公司來送牛奶)   2.刪除觀察者身份時很便捷(

原创 深入理解jvm學習筆記06:虛擬機執行子系統之類文件結構(上)

1.概述 這一章將類文件結構,同時也是講代碼編譯從本地機器碼轉變爲字節碼的發展。   2.無關性的基石 無關性的基石指什麼? 指的是:字節碼 字節碼無關平臺與虛擬機,也就是說所有的平臺操作系統和虛擬機都統一使用字節碼這種程序存儲格式。