原创 你真的瞭解String類的intern()方法嗎

引言 什麼都先不說,先看下面這個引入的例子: 是不是感覺莫名其妙,新定義的str2好像和str1沒有半毛錢的關係,怎麼會影響到有關str1的輸出結果呢?其實這都是intern()方法搞的鬼!看完這篇文章,你就會明白。o(∩_∩)o  說

原创 分佈式網站架構:緩存在分佈式系統中的應用

緩存是分佈式系統中的重要組件,主要解決高併發,大數據場景下,熱點數據訪問的性能問題。提供高性能的數據快速訪問。 一、緩存概述 緩存是分佈式系統中的重要組件,主要解決高併發,大數據場景下,熱點數據訪問的性能問題。提供高性能的數據快速訪問。

原创 詳解Proxy代理模式的場景分析

代理模式是一個十分優秀的軟件架構模式,許多應用都用到了代理模式。代理模式就是爲其他對象提供一種代理以控制對這個對象的訪問。在某些情況下,一個對象不合適或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用。 這次主

原创 這些分佈式知識,BAT的架構師都在用!一,通信二,伸縮性三,穩定性四,可維護性

前一段時間在網上看見了一篇文章內容大致是作爲一個架構師你需要擁有什麼樣的能力,其中不過是包括以下幾個點: 1、對於Java基礎技術體系(包括JVM、類裝載機制、多線程併發、IO、網絡)有一定的掌握和應用經驗。 2、對面向對象的軟件開發思想

原创 Java分佈式架構的演進過程

一.分佈式架構的發展歷史 1946年,世界上第一臺電子計算機在美國的賓夕法尼亞大學誕生,它的名字是:ENICAC ,這臺計算機的體重比較大,計算速度也不快,但是而代表了計算機時代的到來,再以後的互聯網的發展中也有基礎性的意義。 計算機的組

原创 java設計模式之Java迭代器模式

在策略模式中,可以在運行時更改類行爲或其算法。 這種類型的設計模式屬於行爲模式。 在策略模式中,創建表示各種策略對象和其行爲根據其策略對象而變化的上下文對象。 策略對象更改上下文對象的執行算法。 實現實例 在這個示例中,將創建一個 Str

原创 ReentrantReadWriteLock深入解析

ReentrantLock在併發情況下只允許單個線程執行受保護的代碼,而在大部分應用中都是讀多寫少,所以,如果使用ReentrantLock實現這種對共享數據的併發訪問控制,將嚴重影響整體的性能。ReentrantReadWriteLoc

原创 Nginx 極簡教程

什麼是Nginx? Nginx (engine x) 是一款輕量級的Web 服務器 、反向代理服務器及電子郵件(IMAP/POP3)代理服務器。 什麼是反向代理? 反向代理(Reverse Proxy)方式是指以代理服務器來接受inter

原创 Caffeine緩存

簡介 我們來看看 Caffeine — 一個高性能的 Java 緩存庫。 緩存和 Map 之間的根本區別在於緩存可以回收存儲的 item。 回收策略爲在指定時間刪除哪些對象。此策略很直接影響緩存的命中率 — 緩存庫的一個重要特徵。 Caf

原创 深入理解Java正則表達式

概述 Java 正則表達式 正則表達式定義了字符串的模式。 正則表達式可以用來搜索、編輯或處理文本。 正則表達式並不僅限於某一種語言,但是在每種語言中有細微的差別。 深入理解Java正則表達式:(爲了能看清,本文正則表達式用中文的句號代替

原创 淺談Spring的AOP實現-代理機制

說起Spring的AOP(Aspect-Oriented Programming)面向切面編程大家都很熟悉(Spring不是這次博文的重點),但是我先提出幾個問題,看看同學們是否瞭解,如果瞭解的話可以不用繼續往下讀: 1. Spring的

原创 SpringBoot實現Java高併發秒殺系統之Service層開發

Service接口的設計 之前我們寫好了DAO層的接口,這裏我們要開始着手編寫業務層接口,然後編寫業務層接口的實現類並編寫業務層的核心邏輯。 設計業務層接口,應該站在 使用者 角度上設計,如我們應該做到: 1.定義業務方法的顆粒度要細。

原创 一文幫你搞懂 MySQL 單表查詢的底層實現

我們對大家這種 MySQL的使用者來講,日常用的數最多的就是查詢功能。DBA隔三差五丟過去一部分慢查詢語句讓優化,如果連查詢是怎麼去執行的都不怎麼明白還優化個毛線,因此現在是時候掌握真正的技術了。MySQL有個稱做 查詢優化器的模塊,這條

原创 MySQL深入剖析-SQL語句優化

SQL優化的教程很多,但是比較雜亂。近日有空整理了一下,寫出來跟大家分享一下,其中有錯誤和不足的地方,還請大家糾正補充。 1> 爲查詢緩存優化你的查詢 大多數的MySQL服務器都開啓了查詢緩存。這是提高性最有效的方法之一,而且這是被MyS

原创 深入探索Java工作原理:JVM,內存回收!

Java語言引入了Java虛擬機,具有跨平臺運行的功能,能夠很好地適應各種Web應用。同時,爲了提高Java語言的性能和健壯性,還引入瞭如垃圾回收機制等新功能,通過這些改進讓Java具有其獨特的工作原理。 1.Java虛擬機   Java