原创 面試題總結——七大排序
面試題總結——七大排序 時間複雜度 冒泡排序 private static void bubbleSort(int[] array) { for (int i = 0; i < array.length
原创 Java基礎——多態中的“編譯看左,運行看右”
Java基礎——多態中的“編譯看左,運行看右” 對於多態中的靜態屬性或方法來講,編譯看左,運行也看左。無論右邊是當前類還是當前類的子類,編譯和運行期間執行的都是當前類中的方法。 對於多態中的非靜態屬性或非靜態方法,編譯看左
原创 Java多線程——ThreadLocal詳解
Java多線程——ThreadLocal詳解 概念:ThreadLocal用於提供線程局部變量,在多線程環境下可以保證各個線程中的變量獨立於其它線程中的變量。ThreadLocal保證了多線程環境下數據的獨立性。 先來
原创 面試題總結——對象序列化與反序列化
面試題總結——對象序列化與反序列化 對象序列化:將內存中保存的對象變爲二進制數據流的形式進行傳輸,或者是將其保存在文本中。 簡單來說: 序列化:把對象轉換爲字節序列的過程 反序列化:把字節序列恢復爲對象的過
原创 網絡——通信識別(區分不同的通信)
網絡——通信識別(區分不同的通信) TCP/IP或UDP/IP通信中一般採用5個信息來識別一個通信,源IP地址,目標IP地址,協議號,源端口號,目標端口號。 圖1和圖2,其他的都一樣,唯獨源端口號不同,則這屬於兩個不同的
原创 Java8種基本類型所佔字節數
Java8種基本類型所佔字節數 最容易搞混的是Java中的char和boolean 整型: byte:1個字節 char:2個字節 short:2個字節 int:4個字節 long:8個字節 浮點型:
原创 面試題總結——面向對象
面試題總結——面向對象 面向對象三大特性:封裝,繼承,多態 封裝:將描述事物的數據和操作封裝成一個類,被封裝的數據和操作只有通過該類提供的公共方法才能被外界訪問,保證了數據的安全性,封裝隱藏了對象的屬性和實施細節。
原创 海量數據最大k個數以及重複次數最多的k個數問題
海量數據最大k個數以及重複次數最多的k個數問題 一、沒有內存限制(內存可存儲所有海量數據) 海量數據最大k個數:典型TopK問題,維護一個k個元素的小根堆,遍歷所有海量數據,與小根堆堆頂元素進行比較,大於堆頂元素(小根堆最小元
原创 IO,BIO,NIO理解
IO,BIO,NIO理解 一、前提基礎知識 1.1.同步與異步 關注的是被調用方的執行方式及返回時機。 同步:被調用方做完內部所有事情後再返回,同步調用的調用者一定會得到被調用方的結果。 異步:被調用方先返
原创 面試題總結——樂觀鎖與悲觀鎖
面試題總結——樂觀鎖與悲觀鎖 一、樂觀鎖與悲觀鎖對比 1.悲觀鎖 共享資源每次只給一個線程使用,其他線程阻塞,需等到當前線程使用完後才能使用(總是假設最壞的情況,每次拿到數據後都會認爲別人會修改該數據,因此每次拿數據時
原创 B/B+樹
B/B+樹 一、B樹 B-Tree:M叉搜索樹 B-Tree的特性: 1.每個結點最多含有m顆子樹(指針),m-1個關鍵字(數據),m>=2; 2.除了根節點和葉子結點外,其他每個結點至少有ceil(m/2
原创 面試題總結——Linux常見命令
面試題總結——Linux常見命令 進程管理命令 1.pstree:樹狀圖方式展現進程之間的派生關係 pstree -p:顯示當前所有進程的進程號和進程id pstree -p pid:查看某個進程的樹狀圖信息
原创 面試題總結——JDK,JRE,JVM的區別
面試題總結——JDK,JRE,JVM的區別 JDK :Java Development Kit,Java 語言的軟件開發工具包(SDK)。在JDK的安裝目錄下有一個jre目錄,裏面有兩個文件夾bin和lib,在這裏可以認爲bin
原创 面試題總結——網絡
面試題總結——網絡 1.TCP/IP五層模型(OSI七層模型) ①應用層(HTTP<超文本傳輸>,DNS<域名系統>):負責應用程序間的數據溝通,對於不同的網絡應用需要不同的應用層協議; <應用層>:針對特定應用的協議