原创 Java8系列之重新認識HashMap

簡介 Java爲數據結構中的映射定義了一個接口java.util.Map,此接口主要有四個常用的實現類,分別是HashMap、Hashtable、LinkedHashMap和TreeMap,類繼承關係如下圖所示: 下面針對各

原创 Java面試題全集(一)

1、面向對象的特徵有哪些方面? 答:面向對象的特徵主要有以下幾個方面: - 抽象:抽象是將一類對象的共同特徵總結出來構造類的過程,包括數據抽象和行爲抽象兩方面。抽象只關注對象有哪些屬性和行爲,並不關注這些行爲的細節是什麼。 - 繼承:繼

原创 哈希表(閉散列、拉鍊法--哈希桶)

哈希表,也稱散列表,是一種通過key值來直接訪問在內存中的存儲的數據結構。它通過一個關鍵值的函數(被稱爲散列函數)將所需的數據映射到表中的位置來訪問數據。 關於哈希表,主要爲以下幾個方面: 一、哈希表的幾種方法 1、直接定址法:取

原创 Java面試題全集(四)

110、使用標籤庫有什麼好處?如何自定義JSP標籤?  答:使用標籤庫的好處包括以下幾個方面:  - 分離JSP頁面的內容和邏輯,簡化了Web開發;  - 開發者可以創建自定義標籤來封裝業務邏輯和顯示邏輯;  - 標籤具有很好的

原创 近5年133個Java面試問題列表

Java 面試隨着時間的改變而改變。在過去的日子裏,當你知道 String 和 StringBuilder 的區別就能讓你直接進入第二輪面試,但是現在問題變得越來越高級,面試官問的問題也更深入。 在我初入職場的時候,類似於 Vector

原创 Java中的自動裝箱與拆箱

自動裝箱和拆箱從Java 1.5開始引入,目的是將原始類型值轉自動地轉換成對應的對象。自動裝箱與拆箱的機制可以讓我們在Java的變量賦值或者是方法調用等情況下使用原始類型或者對象類型更加簡單直接。 如果你在Java1.5下進行過編

原创 MySQL大表優化方案

當MySQL單表記錄數過大時,增刪改查性能都會急劇下降,可以參考以下步驟來優化: 單表優化 除非單表數據未來會一直不斷上漲,否則不要一開始就考慮拆分,拆分會帶來邏輯、部署、運維的各種複雜度,一般以整型值爲主的表在千萬級以下,字

原创 AVL樹

   AVL樹是最先發明的自平衡二叉查找樹。在AVL樹中任何節點的兩個兒子子樹的高度最大差別爲一,所以它也被稱爲高度平衡樹。 查找、插入和刪除在平均和最壞情況下都是O(log n)。增加和刪除可能需要通過一次或多次樹旋轉來重新平衡這個樹。

原创 常見的內存溢出的三種情況

常見的內存溢出的三種情況: 1)JVM Heap(堆)溢出:java.lang.OutOfMemoryError: Java heap space JVM在啓動的時候會自動設置JVM Heap的值, 可以利用JVM提供的-Xmn -X

原创 AVL樹-自平衡二叉查找樹(Java實現)

 在計算機科學中,AVL樹是最先發明的自平衡二叉查找樹。AVL樹得名於它的發明者 G.M. Adelson-Velsky 和 E.M. Landis,他們在 1962 年的論文 "An algorithm for the organi

原创 幾種經典的hash算法

計算理論中,沒有Hash函數的說法,只有單向函數的說法。所謂的單向函數,是一個複雜的定義,大家可以去看計算理論或者密碼學方面的數據。用“人 類”的語言描述單向函數就是:如果某個函數在給定輸入的時候,很容易計算出其結果來;而當給定結果的時

原创 Java面試題全集(二)

51、類ExampleA繼承Exception,類ExampleB繼承ExampleA。 有如下代碼片斷: try{ thrownew ExampleB("b") }catch(ExampleA e){ System

原创 理解Java虛擬機體系結構

1 概述   衆所周知,Java支持平臺無關性、安全性和網絡移動性。而Java平臺由Java虛擬機和Java核心類所構成,它爲純Java程序提供了統一的編程接口,而不管下層操作系統是什麼。正是得益於Java虛擬機,它號稱的“一次編譯,到處

原创 java分佈式簡單實現

案例:文章推薦 論壇進入文章頁面後,顯示一個推薦列表:看過這篇文章的人還看過哪些文章,包含列爲文章article、點擊數count。 可能有很好很簡單的解決辦法,但是到最後再講。 傳統的方法是:建一張表,字段有article和user。每

原创 java大文件讀寫操作,java nio 之MappedByteBuffer,高效文件/內存映射

java處理大文件,一般用BufferedReader,BufferedInputStream這類帶緩衝的Io類,不過如果文件超大的話,更快的方式是採用MappedByteBuffer。  MappedByteBuffer是java n