原创 代理模式-靜態代理和動態代理

代理模式 代理模式用於爲其他對象提供一種代理以控制對這個對象的訪問,代理模式中分爲代理對象和委託對象(被代理對象),就如同經紀人和藝人的關係,廣告商想要某位藝人代言,不直接與藝人聯繫,而是通過與經紀人取得聯繫來獲得藝人的代言。代理

原创 解析Java中的四種引用

1. 強引用---即使是內存不足,垃圾回收器也不會回收被強引用的對象的內存。(會報OOM異常) 2. 軟引用---只有在內存快溢出的時候,垃圾回收器纔會回收被其引用的對象的內存。軟引用可以和一個引用隊列(ReferenceQueue)聯合

原创 原型模式-JAVA實現深克隆的兩種方式(通過重寫clone方法和序列化反序列化實現深克隆)

一.原型模式介紹 A.優點: 當創建新的對象實例較爲複雜時,使用原型模式可以簡化的對象的創建過程,通過複製一個已有實例可以提高新實例的創建效率。 原型模式允許動態增加或減少產品類。 原型模式具有給一個應用軟件動態加載新功能的能力。 產品類

原创 當try、catch、finally中有return時,程序該如何執行?

try、catch中有return,而finally中沒有return 1、首先說明下,無論try、catch中是否有return,無論是否產生異常,finally代碼是一定會執行的,代碼驗證如下: public int ha

原创 當線程池中的一個線程出現異常,那它該何去何從

1、execute()方法是不會有返回值的,當任務的執行方式是execute時,可以看到堆棧異常的輸出,因爲該方法內部將異常拋出。而當執行方式是submit時,堆棧異常沒有輸出,它不拋出異常而是將異常進行了保存,丟到了Future

原创 高併發網站架構演進之路

文章目錄概述基本概念架構演進單機架構第一次演進:Tomcat與數據庫分開部署第二次演進:引入本地緩存和分佈式緩存第三次演進:引入反向代理實現負載均衡第四次演進:數據庫讀寫分離第五次演進:數據庫按業務分庫第六次演進:把大表拆分爲小表

原创 分佈式限流算法以及實戰

限流的作用 由於API接口無法控制調用方的行爲,因此當遇到瞬時請求量激增時,會導致接口占用過多服務器資源,使得其他請求響應速度降低或是超時,更有甚者可能導致服務器宕機。 限流(Rate limiting)指對應用服務的請求進行限制

原创 Zookeeper原理以及要點知識

Zookeeper Zookeeper簡述 Zookeeper是一個分佈式服務框架,是Apache Hadoop 的一個子項目,它提供的是分佈式協調服務。用來解決分佈式應用中經常遇到的一些數據管理問題,比如統一命名服務、協調鎖資源

原创 CentOS8服務器安裝Mysql並設置遠程連接

過程 安裝 1、通過以下命令,使用最新的包管理器安裝MySQL(安裝過程中一直yes/y即可) sudo dnf install @mysql 2、設置MySQL自動啓動 sudo systemctl enable --now

原创 單調棧以及應用(含leetCode第42題接雨水代碼)

單調棧 定義 單調棧的定義:元素值滿足單調性的棧結構。與單調隊列相比,其只在一端進行進出。遞增棧是棧頂到棧底依次遞增。 插入過程中,保持棧內一直是單調性,將不滿足的元素pop出棧,直接丟棄。如下圖,分別插入6,10,3,7,4,1

原创 跳躍表原理以及實現(含ConcurrentSkipListMap和zset底層實現原理分析)

前言 我們常用來加快查找速度的兩類數據結構分別是哈希表和平衡樹,哈希表查找時間複雜度是O(1),而各類平衡樹(包括紅黑樹)的查找時間複雜度是O(logn)。哈希表雖然查找速度快,但它不是有序的,無法進行範圍查詢;平衡樹雖然也很香,

原创 盤點論文免費下載的國內外網站

前言 查找、下載論文,我們一般會想到知網或者百度學術,但在這些地方下載論文都需要積分,因此這裏推薦幾個免費下載或者免費提供積分的網站 國內 上海研發公共服務平臺(推薦) 鏈接: http://www.sstir.cn

原创 Redis事務(Redis事務與普通關係型數據庫事務的區別)

前言 Redis作爲非關係型數據庫中的一種,因爲其基於內存、單線程、支持持久化、擁有着高速的讀寫速度而又支持多種數據類型、支持原生集羣等特點而被廣泛使用。這篇博文主要討論下Redis事務與關係型數據庫(比如MySQL)事務之間的區

原创 全面解析Java常用容器(從底層結構解析HashMap、ConcurrentHashMap、ArrayList、Vector、LinkedList等常用容器之間的區別和特點)

前言 本篇博文主要是通過解析HashMap、ConcurrentHashMap、TreeMap、Hashtable、LinkedHashMap、HashSet、TreeSet 、ArrayList、Vector、CopyOnWri

原创 MySQL大表優化方案(當數據庫表數據量過大造成CRUD操作性能很差時該如何優化)

前言 當MySQL單表記錄數過大時,增刪改查性能都會急劇下降。可以通過單表優化、限定數據的範圍、表分區、讀寫分離等方法進行優化。這篇文章主要內容是轉載的博主manong,原文傳送門 ,然後自己進行了一些修改。單表優化這塊方法不是太