原创 又一個把性能發揮到極致到例子

Word Search II 給定2D木板和詞典中的單詞列表,請在木板中查找所有單詞。每個單詞必須由順序相鄰的單元格的字母構成,其中“相鄰”單元格是水平或垂直相鄰的單元格。同一字母單元在一個單詞中最多隻能使用一次。 Examp

原创 在處理字符串時,charAt和toCharArray的選擇。

沒有通用的最佳性能方式。charAt進行邊界檢查(但是可以進行優化),而toCharArray則使用了臨時空間。 當VM無法消除邊界時,使用toCharArray可能會更快。 有關更多信息,請參見這裏PPT 的74-78頁。 在上

原创 01揹包問題解法及優化

01揹包問題 給定一個容量爲C的揹包,重量爲weight,價值爲value的石頭,求揹包能容納的最大價值。 例 weight = [1, 2, 3] value = [6, 10 ,12] C = 5 輸出:22 揹包中放入一個

原创 SpringMVC內容協商-擴展參數解析

問題 在使用SpringMVC時,調用接口傳送數據時,大多情況使用的是json格式傳輸數據,這也是這個框架裏面默認選項,但是如果我們要自己定義傳輸格式,並且寫自己的解析接口,定義自己的媒體類型作爲擴展,需要怎麼做? 過程 在Spr

原创 (轉)SPI機制

前言 在查看Spring裝配Servlet時候有用到的SPI機制 查看原文章JAVA 拾遺 – 關於 SPI 機制 JDK提供的SPI(Service Provider Interface)機制,可能很多人不太熟悉,因爲這個機制是

原创 SpringMVC內容協商-擴展參數解析-2

SpringMVC內容協商-擴展參數解析-2 前 在上一篇SpringMVC內容協商-擴展參數解析中利用SpringBoot提供的鉤子,實現了請求入參和返參的數據解析,但是可以看到我們依賴的是RequestResponseBody

原创 Redus Cluster

前言 我們知道Redis官方給出Redis的QPS能達到10W/s,這是一個非常快的速度,但是如果這樣的數據還無法滿足我們的需求,比如100W/s。其次,我們業務需要很大的內存存儲用戶數據,這樣我們Redis在單機模式也是無法滿足

原创 Redis的主從複製

Redis的主從複製 主從複製的作用 我們在剛開時使用Redis時都是單機測試的,但是生產環境中卻不是這樣子的,如果我們生產環境中單機部署了,就會遇到下面問題。 1 機器故障:如果機器故障了,我們Redis是不是直接就掛了,數據

原创 Redis的持久化機制RDB和AOF

前言 開啓redis之旅 Redis的持久化 Redis是直接操作內存的,如果需要保存數據,需要把內存的數據持久化到硬盤上,否則一旦宕機則會丟失數據。而Redis提供了兩種持久化的機制,也就是下面要說的RDB和AOF。 首先我們

原创 Redis Sentinel

前言 前面學完裏主從複製,雖然主從複製確保裏數據的安全,且我們可以實現讀寫分離,從節點只讀,主節點負責寫,這樣可以分攤主節點的壓力。但是又一個問題,如果主節點出現了問題就需要我們手動故障轉移,需要寫很多腳本去幫助我們實現。另一個存

原创 mac使用brew命令安裝mysql

使用brew查看mysql版本 brew search mysql 輸出 這裏安裝5.7 brew install [email protected] 配置 啓動服務 這時候還沒配置密碼等一些東西,在所有配置之前先啓動mysql服務,在我

原创 Java併發編程的藝術讀書筆記(第五章)

第五章-Java中的鎖 前言:最近有點懶。 第五章是比較難的一章了,在前面的鋪墊之下開始講實現方式了。Java中鎖的實現方法,當然拋開由JVM自帶的synchronized關鍵字,本章節主要還是講一些由API實現的鎖,這樣一來,J

原创 Java併發編程的藝術讀書筆記(第三章)

第三章-Java內存模型 3.1 Java內存模型的基礎 3.1.1 併發編程模型的兩個關鍵問題 1、線程間如何通信 在共享內存併發模型,線程之間共享程序的公共狀態,通過寫-讀內存中的公共狀態進行隱式通信。 在消息傳遞併發

原创 Java併發編程的藝術讀書筆記(第二章)

第二章-Java併發機制的底層實現原理 2.1 volatile的應用 volatile的定義與實現原理 Java編程語言允許線程訪問共享變量,爲了確保共享變量能被準確和一致地更新,線程應該確保通過排他鎖單獨獲得這個變量。J

原创 Java併發編程的藝術讀書筆記(第一章)

第一章 併發編程的目的是爲了讓程序運行得更快,但並不是啓動更多的線程就能讓程序最大限度的併發執行。 由於我們的目的是爲了提升程序性能,所以程序運行的細節都需要把握清楚。 1.1上下文切換 CPU通過時間片分配算法來循環執行任務,