原创 秒殺系統設計

文章目錄一、秒殺業務爲什麼難做二、優化方向三、常見秒殺架構四、各層次優化細節第一層,客戶端怎麼優化(瀏覽器層,APP層)第二層,站點層面的請求攔截第三層 服務層來攔截(反正就是不要讓請求落到數據庫上去)第四層,最後是數據庫層五、總結六

原创 redis底層原理

參考文章:https://www.cnblogs.com/ysocean/category/1221478.html

原创 算法---約瑟夫環問題

每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作爲牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號爲0的小朋友開始報數。每

原创 Dubbo模型從上到下

SOA,ORM,MVC,AOP ->RPC,socket,管道(無名管道(單向傳輸),命名管道(可雙向)) ->dubbo,hessian,RMI,http ->netty,Mina ->NIO,BIO,AIO:NIO,BIO,AIO

原创 spring--容器創建過程(IOC和AOP的過程)

在前面兩篇中我們介紹了IOC和AOP,知道了IOC容器就是來管理每個Bean的,而AOP就是對這些Bean進行功能的拓展,那麼這個過程是怎麼樣實現的呢,IOC和AOP又是怎麼樣的一個過程呢。 一、Spring容器創建過程 我們通過一個

原创 spring之AOP

1、什麼是AOP?沒有AOP會怎麼樣 在前面我們提了IOC,作爲spring的兩大核心功能,AOP(Aspect-OrientedProgramming,面向方面編程)也是非常重要的,它體現了一種相對於OOP(Object-Orien

原创 算法---撲克牌中的順子(位圖的運用)

首先先學一下什麼是位圖看這裏看這裏 LL今天心情特別好,因爲他去買了一副撲克牌,發現裏面居然有2個大王,2個小王(一副牌原本是54張_)…他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票

原创 算法----求是否是平衡二叉樹(剪枝方法)

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 思路一:暴力遞歸,判斷每個兩邊的高度差是否大於1,但是會有很多多餘的計算 public boolean IsBalanced_Solution(TreeNode root) {

原创 算法---求一個數組中兩個只出現一次的數字(移位運算和二進制運算的精髓)

一個整型數組裏除了兩個數字之外,其他的數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。比如{2 ,4 ,3, 4 , 6 ,3, 5},則這兩個數字是2和5,要求時間複雜度爲O(N),空間複雜度爲O(1) 思路: 1)首先我

原创 設計模式--代理模式(proxy)

一 、什麼是代理 什麼是代理模式? 日常生活中我們經常會碰到代理模式,例如我們找房產中介幫我們介紹房子,找婚姻中介幫我們介紹對象,找保潔幫我們打理房間,找律師幫我們進行訴訟等。我們在無形中運用到了代理模式,卻不知道它的存在。 爲什

原创 Spring之IOC

一、什麼是IOC,沒有IOC的話會怎麼樣 就比如在沒有IOC的時候,個個類之間的關係就像上面這張圖一樣緊密聯繫在一起。每次調用一個類實例必須手動創建一個對象。對象的耦合非常高。這時候IOC就出來了。 前面不是說對象之間的關係緊密聯繫

原创 算法---求一顆樹的最大深度

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度爲樹的深度。 思路一:採用遞歸,求出左右節點的深度,比較哪邊大,就可以了。 public class Solution {

原创 算法---巧妙的二分查找

統計一個數字在排序數組中出現的次數。 思路一:傳統解法,採用二分查找第一個K和最後一個K; public class GetNumberOfK { public static void main(String[] args)

原创 算法---求空間中多個點中,組成面積最大的三個點

三維空間中有N個點,每個點可能是三種顏色的其中之一,三種顏色分別是紅綠藍,分別用’R’, ‘G’, 'B’表示。 現在要找出三個點,並組成一個三角形,使得這個三角形的面積最大。 但是三角形必須滿足:三個點的顏色要麼全部相同,要麼全部

原创 java高併發程序設計2-JDK併發包

爲什麼要有JDK併發包呢?因爲爲了多線程安全。。。。 下面主要從三個部分來了解JDK併發包(java.util.concurrent):多線程的團隊協作(同步控制)、線程複用(線程池)、不要重複發明輪子(JDK的併發容器) 一、同步控