原创 小學生也能看懂的ArrayList底層原理

閱讀指引:本文包含源碼,如果不想閱讀源碼,建議跳過 “ArrayList 的主要方法” 中的源碼分析部分,直接看每一部分的小總結。 簡單介紹 ArrayList是 Java 集合框架中比較常用的數據結構,底層基於數組實現,能夠實現

原创 如何合理地建立 Mysql 索引

前言 索引基礎知識 建立索引 alter table table_name add index (index_name); 刪除索引 ALTER TABLE table_name DROP INDEX index_n

原创 Mysql通過存儲過程批量插入數據

創建表 DROP TABLE if exists employees_partition; CREATE TABLE if not exists `employees_partition` ( `id` int(11) NOT

原创 學透 LinkedList 底層實現原理,狂虐面試官!

前言:面試時被問到 LinkedList 的底層實現,瞬間啞口無言,所以決定狠狠地啃一下 Java源碼,目標就是吊打面試官! 好了,廢話不多說,進入正題。 簡單介紹 很多人聽到 LinkedList,應該就能猜到它的底層是用鏈表實

原创 緩存淘汰策略——最近最久未使用策略(LRU)

什麼是緩存淘汰策略? 緩存位於內存中,而內存的空間很有限,所以緩存也有一個能使用的最大空間,當緩存中的數據超過這個最大空間時,就要使用緩存淘汰策略淘汰一些數據,空出空間給其他數據使用。 最近最久未使用策略 最近最久未使用策略,優先

原创 動態規劃套路解決戳氣球問題

題目 有 n 個氣球,編號爲0 到 n-1,每個氣球上都標有一個數字,這些數字存在數組 nums 中。 現在要求你戳破所有的氣球。每當你戳破一個氣球 i 時,你可以獲得 nums[left] * nums[i] * nums[r

原创 ConcurrentHashMap 底層原理,你真的理解了嗎?

ConcurrentHashMap 是 HashMap 的線程安全版本,與之前版本的ConcurrentHashMap實現來看,java 8中做了較大調整,本文僅分析java 8的實現,java 8 之前的實現暫不做分析。 簡單介

原创 ISP緩存機制及登錄串號現象

ISP緩存的技術說明: 1、ISP緩存,本身是一種寬帶接入提供商給網頁批量訪問加速的技術。ISP會將當前訪問量較大的網頁內容放到ISP服務器的緩存中,當有新的用戶請求相同內容時,可以直接從緩存中發送相關信息,不必每次都去訪問真正的

原创 centos 雲服務器部署Node.js項目

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境,用來方便地搭建快速的易於擴展的網絡應用。Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效,非常適合運行在分佈式設備

原创 靜態代碼塊、非靜態代碼塊和構造方法

執行順序: 靜態代碼塊 > 非靜態代碼塊 > 構造方法 示例: public class Test { { System.out.println("not static run"); } static { Syst

原创 B樹和B+樹詳細解析

維基百科對B樹的定義爲“在計算機科學中,B樹(B-tree)是一種樹狀數據結構,它能夠存儲數據、對其進行排序並允許以O(log n)的時間複雜度運行進行查找、順序讀取、插入和刪除的數據結構。B樹,概括來說是一個節點可以擁有多於2個

原创 千萬級測試String、StringBuffer和StringBuilder的速度

面試是經常被問到String、StringBuilder和StringBuffer三者的速度有什麼區別,經過測試後,這三者的執行速度關係是:StringBuilder > StringBuffer > String,測試過程如下:

原创 雲服務器Centos7.0 配置JAVA運行環境 (jdk8+tomcat7+mysql)

文章目錄配置JAVA環境配置Tomcat安裝Mysql 配置JAVA環境 1.查看是否聯網 2. 查看yum庫中的Java安裝包 yum -y list java* 輸入之後回車,會看到各種不同版本的jdk包 3. 使用yum

原创 vue如何保存登錄狀態到全局?【vue狀態管理】

如果你之前使用過vue.js,你一定知道在vue中各個組件之間傳值的痛苦,在vue中我們可以使用vuex來保存我們需要管理的狀態值,值一旦被修改,所有引用該值的地方就會自動更新,那麼接下來我們就來學習一下vuex是如何修改狀態值的