原创 哈希表和 Java 的前世今生(下),掌握HashMap看這一篇就夠了!!!

在哈希表和 Java 的前世今生(上),掌握HashMap看這一篇就夠了!!! 中,我們講解了哈希表的原理以及JDK7 HashMap的源碼及JDK7中HashMap的注意點。 在哈希表和 Java 的前世今生(中),掌握Hash

原创 Linux 中shell 腳本if判斷多個條件

格式如下,在比較時,數字和字符串用不同的比較符號 如果a>b且a<c if (( a > b )) && (( a < c )) 或者 if [[ $a > $b ]] && [[ $a < $c ]] 或者 if [ $a -

原创 TCP詳解之三次握手、四次揮手

在互聯網很多崗位的面試中TCP的三次握手、四次揮手都是不可繞過的話題,有很高的熱點度.今天我就帶大家來看看什麼是三次握手、四次揮手. 在講之前,我們先來了解下TCP協議是什麼 1. TCP協議 TCP協議全稱: 傳輸控制協議, 顧

原创 Mybatis個人簡單理解

Mybatis是對jdbc的封裝,它讓數據庫底層操作變的透明。mybatis的操作都是圍繞一個sqlSessionFactory實例展開的。mybatis通過配置文件關聯到各實體類的Mapper文件,Mapper文件中配置了每個

原创 mybatis PageHelper.startPage出現limit錯誤

問題如下: 小編在使用Mybatis分頁插件時,一直報這個錯誤,查找了好久都沒有找到問題。 這是後臺代碼: 經過小編的不斷排查,以及原理探究,終於發現錯誤的原因!!! 第一: PageHelper.startPage是分頁開始

原创 ArrayList源碼解讀(JDK8)

首先,我們可以看到,ArrayList繼承的是AbstractList抽象類,實現的是List接口 ArrayList的成員變量都用private static final來進行修飾,默認的容量是10 我們從上面的Array

原创 CAS概述、定義、缺點和優化

1.CAS概述 CAS(Compare-and-Swap),即比較並替換,是一種實現併發算法時常用到的技術,Java併發包中的很多類都使用了CAS技術. 2. CAS定義 CAS需要有3個操作數:內存地址V,舊的預期值A,即將要更

原创 操作系統調度的方式

1. 處理機調度的層次 1.1 高級調度(作業調度)–>多道批處理系統中 調度對象:作業 主要功能:根據某種算法,將外存上處於後備隊列中的哪幾個作業調入內存,爲它們創建進程,分配資源,並將他們放入就緒隊列。 1.2 低級調度(進程

原创 哈希表和 Java 的前世今生(完),掌握HashMap看這一篇就夠了!!!

在哈希表和 Java 的前世今生(上),掌握HashMap看這一篇就夠了!!! 中,我們講解了哈希表的原理以及JDK7 HashMap的源碼及JDK7中HashMap的注意點。 在哈希表和 Java 的前世今生(中),掌握Hash

原创 JAVA線程類面試題

並行和併發有什麼區別? –並行是指兩個或者多個事件在同一時刻發生;而併發是指兩個或多個事件在同一時間間隔發生。 –並行是在不同實體上的多個事件,併發是在同一實體上的多個事件。 –在一臺處理器上“同時”處理多個任務,在多臺處理器

原创 堆排序

堆排序是利用堆這種數據結構而設計的一種排序算法,堆排序是一種選擇排序,它的最壞,最好,平均時間複雜度均爲O(nlogn),它也是不穩定排序。首先簡單瞭解下堆結構。 堆是具有以下性質的完全二叉樹:每個結點的值都大於或等於其左右孩子結

原创 Java的GC機制,引用計數和可達性分析算法,finize()方法,四種回收算法,哪些對象可以作爲GC ROOTS對象

JavaGC機制 主要完成三件事情:一、哪些內存需要回收。二、什麼時候回收。三、如何回收。 引用計數法 在對象中添加一個引用計數器,每當有一個地方引用它時,計數器值就+1;當引用失效時,計數器的值就-1;任何時刻計數器的值爲零的對

原创 快速排序

原理 快速排序,說白了就是給基準數據找其正確索引位置的過程.    如下圖所示,假設最開始的基準數據爲數組第一個元素23,則首先用一個臨時變量去存儲基準數據,即tmp=23;然後分別從數組的兩端掃描數組,設兩個指示標誌:low指向

原创 HTTP1和HTTP2的區別

1. Http1.x 缺陷:線程阻塞,在同一時間,同一域名的請求有一定數量限制,超過限制數目的請求會被阻塞。 2. Http1.0(短連接) 缺陷:瀏覽器與服務器只保持短暫的連接,瀏覽器的每次請求都需要與服務器建立一個TCP連接(

原创 Java的四種引用方式

強引用:是最傳統的“引用”的定義,是指在程序代碼中普遍存在的引用賦值,即類似“Object obj=new Object()”這種引用關係。無論任何情況下,只要強引用關係還存在,垃圾收集器就永遠不會回收掉被引用的對象。(只要強引