原创 Java虛擬機:Java堆
對於大多數應用來說,Java堆(Java Heap)是Java虛擬機所管理的內存中最大的一塊。Java堆是被所有線程共享的一塊內存區域,在虛擬機啓動時創建。此內存區域的唯一目的就是存放對象實例,幾乎所有的對象實例都在這裏分配內存。
原创 B/S網絡架構概述(在瀏覽器中輸入一個URL會發生什麼)
B/S網絡架構概述 B/S網絡架構從前端到後端都得到了簡化,都基於統一的應用層協議HTTP來交互數據,與大多數傳統C/S互聯網應用程序採用的長連接的交互模式不同,HTTP採用無狀態的短連接的通信方式。通常情況下,一次請求就完成了一
原创 Java:HashMap(詳細講解)
HashMap 基本概念 Map有鍵和值的概念,一個鍵映射到一個值,Map按照鍵存儲和訪問值,鍵不能重複,即一個鍵只會存儲一份,給同一個鍵重複設值會覆蓋原來的值。使用Map可以方便地處理需要根據鍵訪問對象的場景。 Map接口定義
原创 Java:異常(細節版)
異常類體系 Throwable是所有異常的基類,它有兩個子類:Error和Exception。 Error表示系統錯誤或資源耗盡, 由Java系統自己使用,應用程序不應拋出和處理。比如圖中列出的虛擬機錯誤(VirtualMach
原创 TCP/IP:TCP/IP簡單整理
爲了瞭解HTTP,首先要簡單瞭解一下TCP/IP協議族。 通常使用的網絡(包括互聯網)是在TCP/IP協議族的基礎上運作的。而HTTP屬於它內部的一個子集。 TCP/IP協議族裏最重要的一點就是分層(一共4層): 1、應用層 應用
原创 Java:泛型(深入解析,一文讀懂)
基本概念和原理 爲什麼使用泛型: 在沒有使用泛型之前,一旦把一個對象“丟進”Java集合中,集合就會忘記對象的類型,把所有的對象當成Object類型處理。當程序從集合中取出對象後,就需要進行強制類型轉換,這種強制類型轉換不僅是代
原创 Java:DO、DTO、VO實戰運用
關於DO,DTO和VO在項目中的使用(不包括全部項目都這麼使用): DO:對應數據庫表結構 VO:一般用於前端展示用 DTO:用於數據傳遞(接口入參和接口返回值都可以) 以SSM框架爲例: Controller層: public Lis
原创 IntelliJ IDEA:從dao層Java代碼快速跳到mapper.xml文件定位的插件
最近看到公衆號推送了一個idea好用的插件,今天拿來試了一下,真的好用,推薦給大家。 2.使用方法:對dao層mybatis,按住control+alt+鼠標點擊 xxMapper.selectAll(),則跳轉到此mapper.xml
原创 Java:判斷增刪改查返回值問題
增加與更新: 比如增加或更新一個學生(Student),參數類型是Student,返回值是可有可無(void 或object類型)。 刪除: 比如刪除一個學生,參數類型是定義類型(Student)的屬性(sid 或sname),返
原创 Yonghong:Yonghong無法連接到mysql數據庫
用Yonghong連接數據庫時,發現了以下問題,這問題困擾了我好幾天,看下圖: 經排查是,MySQL8.0版本需要更換驅動爲“com.mysql.cj.jdbc.Driver”,之前的“com.mysql.jdbc.Driver”已
原创 框架:SpringBoot 之 SpringApplication源碼深度解析(上)
總算是懷着熱切的心情打開了spring boot的源碼,大四北京實習用過的框架,都是回憶呀。 啓動類,都是調用SpringApplication的run()方法,傳入的是加入@Configuration註解的類,跟參數: public
原创 Java:自增與自減運算符
運算符有兩種形式: ①:運算符放在操作數後面的“後綴”形式,例:n++。 ②:還有一種“前綴”形式:++n。 後綴和前綴的
原创 Java堆
對於大多數應用來說,Java堆(Java Heap)是Java虛擬機所管理的內存中最大的一塊。Java堆是被所有線程共享的一塊內存區域,在虛擬機啓動時創建。此內存區域的唯一目的就是存放對象實例,幾乎所有的對象實例都在這裏分配內存。
原创 框架:SpringBoot之SpringApplication源碼深度解析(下)
我們回到SpringApplication的run方法繼續分析。 public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch
原创 Linux:內核源碼解析 - CFS調度算法
進程調度,那麼先從進程描述符的數據結構開始: struct task_struct { volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ void *s