原创 MySQL從零開始 22-索引創建原則

 基於合理的數據庫設計,經過深思熟慮後爲表建立索引,是獲得高性能數據庫系統的基礎。而未經合理分析便添加索引,則會降低系統的總體性能。索引雖然說提高了數據的訪問速度,但同時也增加了插入、更新和刪除操作的處理時間。  是否要爲表增加索

原创 Guava Supplier&Suppliers 源碼分析

Supplier Guava Functional中的Supplier是通過給定的類型返回一個對象或者創建對象,即用作創建對象。 package com.google.common.base; @GwtCompatible @F

原创 Java 剖析抽象類

 抽象類只是在普通類的基礎上擴充了一些抽象方法而已,所謂的抽象方法指的是隻聲明而未實現的方法(即沒有方法體)。  所有抽象方法要求使用abstract關鍵字來定義,並且抽象方法所在的類也一定要使用abstract關鍵字來定義,表示

原创 IDEA 如何批量修改變量名

 在IDEA中進行工作時,有事敲了很久代碼發現一個類名,方法名,或者變量名定義錯了,這時,該變量可能在很多地方都引用到了,要修改的話,極其麻煩,需要將所有引用該變量的地方都進行修改,特別麻煩。  實際上,IDEA提供了一個快捷鍵進

原创 Java 深入理解接口定義

 抽象類與普通類相比最大的特點是約定了子類的實現要求,但是抽象類存在單繼承侷限。如果要約定子類的實現要求並且避免單繼承侷限就需要使用接口。 1. 接口概念  接口就是一個抽象方法和全局常量的集合,使用interface關鍵字進行定

原创 MySQL從零開始 20-關係型數據庫與非關係型數據庫

1. 關係數據庫  關係型數據庫模型是把複雜的數據結構歸結爲簡單的二元關係(即二維表格形式)。通過外鍵關聯來建立表與表之間的關係,通常在關係型數據庫中搜索一條數據,結果是一個對象。 2. 非關係數據庫 非關係型數據庫通常指數據以對

原创 Java break、continue實現goto

儘管goto是Java的一個保留字,但是並沒喲阻礙語言中得到正式的使用。雖然goto聲名狼藉,但有的時候使用goto進行跳轉,能達到意想不到的好處。 Java使用continue和break可以實現跳轉的效果,但是兩者有一些不同。

原创 Guava Stopwatch源碼分析

Stopwatch 很多library都有類似Stopwatch的實現,用來計算經過的時間,相當於一個計時器。 package com.google.common.base; @GwtCompatible(emulated =

原创 Guava Function&Functions 源碼分析

Functional Programming 函數式編程強調使用函數來實現其目標或者改變其狀態。 Guava爲了支持函數式編程提供了三個類Predicate、Function、Supplier。 Function 輸入一個inpu

原创 Guava Charsets 源碼分析

Charsets 定義了一些編碼字符集。 Guava Charsets底層使用了Charset.forName。 @GwtCompatible(emulated = true) public final class Charset

原创 Guava CharMatcher 源碼分析

CharMatcher CharMatcher提供了多種對字符串處理的方法,大概分爲找到匹配的字符串和處理匹配的字符串兩種。其中內部實現了大量的公用內部類,用來方便用戶對字符串進行匹配,並且實現了大量處理字符串的方法。 CharM

原创 Guava Predicate&Predicates源碼分析

Predicate 斷言,判斷一個對象是否滿足一定條件。 package com.google.common.base; @FunctionalInterface @GwtCompatible public interface

原创 Guava Strings 源碼分析

Strings Stirngs是Guava對字符串操作提供的一些支持。 // 將null轉爲空字符串,不爲null返回源字符串 public static String nullToEmpty(@Nullable String s

原创 什麼是Guava

0. 什麼是Guava guava不是一個框架,是一個谷歌的類庫,其內提供了大量的方法。 早期是高併發的一個類庫,後期進行了擴充。 1. maven項目導入guava依賴 <dependencies> <!--gu

原创 Guava Preconditions

Preconditions 斷言,相同的還有Objects、Java assert key word、hamcrest。 使用 構造方法 構造私有,與Joiner、Splitter不同,Preconditions提供了大量的靜