原创 ArrayList、Vector和LinkedList有什麼區別

ArrayList、Vector、LinkedList類均在java.util包中,均爲可伸縮數組,即可以動態改變長度的數組 一、ArrayList和Vector的區別 存儲結構 ArrayList和Vector是按照順序將元素存儲(從下

原创 CAS算法簡介

在瞭解CAS之前,我們先看看幾個概念來知道爲什麼會有CAS的出現 樂觀鎖和悲觀鎖 悲觀鎖:獨佔鎖是一種悲觀鎖,synchronized就是一種獨佔鎖,它假設最壞的情況,並且只有在確保其它線程不會造成干擾的情況下執行,會導致其它所有需要鎖的

原创 List、Set、Map的區別

一、集合概述   二、List、Set、Map特點 List 1.可以允許重複的對象。 2.可以插入多個null元素。 3.是一個有序容器,保持了每個元素的插入順序,輸出的順序就是插入的順序。 4.常用的實現類有 ArrayList、

原创 for循環和foreach的區別

1.在固定長度或者長度不需要計算的時候for循環效率高於foreach,在不確定長度或者計算長度有損性能的時候用foreach比較方便 2.foreach適用於只是進行集合或數組遍歷,for則在較複雜的循環中效率更高。 3.如果對集合中的

原创 Redis架構

一、架構 數據單片分發 數據多片分發 二、流程解析 數據單片分發 數據分發到一個片上,這是默認的redis分發模式。先分發請求到各個片,再在內存中構成樹結構 數據多片分發 數據分發到多個片,顯著降低數據傳輸速度,但是數據在內存中構

原创 集合和數組的區別

1、數組聲明瞭它容納的元素的類型,而集合不聲明。 2、數組是靜態的,一個數組實例具有固定的大小,一旦創建了就無法改變容量了。而集合是可以動態擴展容量,可以根據需要動態改變大小,集合提供更多的成員方法,能滿足更多的需求。 3、數組的存放的類

原创 zookeepr架構(互聯網公司)

一、架構 二、流程解析 1.在zookeeper註冊生產者,給生產者分配標識key 注:不同的生產者可以有不同的key,也可以選擇使用相同的key。一般是類似功能的生產者分配一個key 2.在zookeeper註冊消費者,也給消費者

原创 HTTP協議詳解

爲了更好的理解HTTP協議,我們先簡單的瞭解一下TCP/IP協議族。通常我們所使用的網絡都是在TCP/IP協議族的基礎上運作的,HTTP也不例外。 一. TCP/IP協議族 客戶端與服務器端進行相互通信,雙方必須遵循相同的規則,比如 1

原创 互聯網公司網絡結構

一、架構 二、流程解釋 1.DNS根據域名查詢地址 注:因爲DNS服務器性能數量的原因,有時候公司會選擇讓DNS來承擔一部分分流的任務,在DNS服務器中爲同一個主機名配置多個IP地址,在應答DNS查詢時,DNS服務器對每個查詢將以D

原创 堆外內存和堆內內存

堆內內存 堆外內存和堆內內存是相對的二個概念,其中堆內內存是我們平常工作中接觸比較多的,我們在jvm參數中只要使用-Xms,-Xmx等參數就可以設置堆的大小和最大值,理解jvm的堆還需要知道下面這個公式: 堆內內存 = 新生代+老年代+持

原创 equals和hashcode區別

equals方法 Object類中默認的實現方式是  :   return this == obj  。那就是說,只有this 和 obj引用同一個對象,纔會返回true。 而我們往往需要用equals來判斷 2個對象是否等價,而非驗證他

原创 微信紅包架構

架構圖 發紅包 1.爲了減輕服務器端壓力,在客戶端對紅包金額數值進行拆分 2.用算法爲每個紅包加一個唯一標識id。此處我採用的是uuid(雪花算法)+ip+時間戳 3.請求通過nginx分發到各個服務器。 4.服務器把數據雙寫到數據庫中

原创 進程和線程區別(糾正網上幾個常見的誤解)

1.什麼是進程? 當一個程序開始運行時,它就是一個進程,進程包括運行中的程序和程序所使用到的內存和系統資源。 進程由兩部分構成:進程內核對象,地址空間。 進程是系統進行資源分配和調度的一個獨立單位,是資源分配的最小單位。 而一個進程又是由

原创 海量數據排序算法

題目:有100萬無序數據,要求從小到大排序。但是每次內存只能排序1萬條數據。 1.因爲每次只能處理1萬條數據,所以要分組處理,我們將100萬數據分成100組 2.因爲每組數據都是無序的,所以我們使用平均時間複雜度較好的算法。 3.當我們分

原创 SpringMVC原理及工作流程詳細解析

SpringMVC工作原理圖: SpringMVC流程: 1.tomcat啓動SpringMVC項目,加載該項目的web.xml文件(其中listener監聽器可以監聽到一些請求進行分配) 2.通過web.xml文件加載其中配置的Sp