原创 單例模式

 單例模式 單例(Singleton)模式是Java中最簡單的設計模式之一。這種類型的設計模式屬於創建模式,因爲此模式提供了創建對象的最佳方法之一。 這種模式涉及一個類,它負責創建一個對象,同時確保只創建一個對象。這個類提供了一種方法來訪

原创 MySQL大表優化方案,單表優化、讀寫分離、緩存、分區表

當 MySQL 單表記錄數過大時,增刪改查性能都會急劇下降,可以參考以下步驟來優化。單表優化除非單表數據未來會一直不斷上漲,否則不要一開始就考慮拆分,拆分會帶來邏輯、部署、運維的各種複雜度,一般以整型值爲主的表在千萬級以下,字符串爲主的表

原创 springMVC傳遞對象參數

基礎類型 如果傳遞的json數據爲基礎類型(Int,String等)的話,則只需要用@RequestParam標註方法中的參數就行了。 ajax代碼 $.ajax({  url : "someurl",  type : "POST"

原创 工廠模式(抽象工廠模式)

 工廠模式 工廠模式是Java中最常用的設計模式之一。 這種類型的設計模式屬於創建模式,因爲此模式提供了創建對象的最佳方法之一。 在工廠模式中,我們沒有創建邏輯暴露給客戶端創建對象,並使用一個通用的接口引用新創建的對象。 實現方法 我們將

原创 DOM對象和js對象以及jQuery對象的區別

一、DOM對象 文檔對象模型簡稱DOM,是W3C組織推薦的處理可擴展置標語言的標準編程接口。 DOM實際上是以面向對象方式描述的文檔模型。DOM定義了表示和修改文檔所需的對象、這些對象的行爲和屬性以及這些對象之間的關係。 通過DOM,可以

原创 建造者(Builder)模式

建造者(Builder)模式 構建器(Builder)模式使用簡單對象並使用逐步方法構建複雜對象。 這種類型的設計模式屬於創建模式,因爲此模式提供了創建對象的最佳方法之一。 構建器(Builder)模式構建器逐步構建最終對象,此構建器獨立

原创 MySQL的索引及優化

索引對大數據的查詢速度的提升是非常大的,Explain可以幫你分析SQL語句是否用到相關索引。索引類似大學圖書館建書目索引,可以提高數據檢索的效率,降低數據庫的IO成本。MySQL在300萬條記錄左右性能開始逐漸下降,雖然官方文檔說500

原创 shadowsocks-over-websocket科學上網

shadowsocks-over-websocket 基於 shadowsocks 協議的翻牆工具 , 可部署在 Heroku 平臺上 , 實現免費科學上網 如何部署在 Heroku 平臺上 1.準備工作 Heroku 註冊 GitHub

原创 AVL樹

一、AVL樹繼承自BinarySearchTree,1,它是一棵平衡二叉樹,他要求每個節點的左右子樹的深度之差不能超過1。2,每個節點都有一個平衡因子bf,取值爲-1、0、1 。它的值等於右子樹的深度減去左子樹的深度。3,有LL、RR、R

原创 讀寫鎖源碼分析(ReentrantReadWriteLock)

爲什麼需要讀寫鎖? 與傳統鎖不同的是讀寫鎖的規則是可以共享讀,但只能一個寫,如果場景中往往讀遠遠大於寫,讀寫鎖就是爲了這種優化而創建出來的一種機制。 注意是讀遠遠大於寫,一般情況下獨佔鎖的效率低來源於高併發下對臨界區的激烈競爭導致線程上下

原创 HashMap源碼分析

https://mp.weixin.qq.com/s/lgYpJhKHoKh3avjPux6Rvg

原创 快速排序

思想:1.在數組中找到一個主元(pivot),一般以數組的第一個元素爲主元,將數組分爲兩部分,使得第一部分的元素都小於主元,第二部分的元素大於主元,然後再對這兩個部分遞歸調用快速排序。2.low指針指向first的下一個元素,high指向

原创 Git命令

將本地工程push到遠程 方式一: 建立本地倉庫 git init 創建遠程倉庫:在github或者gitlab創建遠程倉庫 讓本地倉庫和遠程倉庫進行關聯 git remote add origin git@mycode.

原创 conda管理python環境

conda      切換環境:activate ***     新建環境:conda create -n ***     刪除環境:conda remove -n *** --all     複製環境:conda create -n n