ARTS-0

Algorithm

代碼地址:https://github.com/Lazy-Lion/Algorithm/blob/master/java/src/dynamicprogramming/LongestIncreasingSubsequence.java

代碼地址: https://github.com/Lazy-Lion/Algorithm/blob/master/java/src/dynamicprogramming/WildcardMatching.java

Review

Strings, Literally
文章介紹了java 中String字面量以及String對象的一些知識點殖侵。

針對String字面量進行如下的代碼測試 (JDK8):

public class StringTest {
    static String temp3 = "CD";
    final static String temp4 = "CD";
     
    public static void main(String[] args) {
         
        String s1 = "ABCD";
        String s2= "A" + "B" + "C" + "D";
         
        String temp = "CD";
        String s3 = "AB" + temp;
         
        final String temp2 = "CD";
        String s4 = "AB" + temp2;

        String s5 = "AB" + temp3;
         
        String s6 = "AB" + temp4;
         
        String s7 = "AB" + get();
         
        String s8 = "AB" + getF();
         
        //tip: 編寫代碼System.out.println("s1 == s2 ? " + s1 == s2); 漏寫括號,
        //導致輸出的是"(s1 == s2 ? " + s1) == s2" 的結(jié)果
        System.out.println("s1 == s2 ? " + (s1 == s2));  
        System.out.println("s1 == s3 ? " + (s1 == s3));
        System.out.println("s1 == s4 ? " + (s1 == s4));
        System.out.println("s1 == s5 ? " + (s1 == s5));
        System.out.println("s1 == s6 ? " + (s1 == s6));
        System.out.println("s1 == s7 ? " + (s1 == s7));
        System.out.println("s1 == s8 ? " + (s1 == s8));
    }
     
    public static String get(){
        return "CD";
    }
     
    public final static String getF(){
        return "CD";
    }
}

對上述代碼進行反編譯:

public class StringTest {
    static String temp3 = "CD";
    static final String temp4 = "CD";
 
    public static void main(String[] args) {
        String s1 = "ABCD";
        String s2 = "ABCD";
        String temp = "CD";
        String s3 = "AB" + temp;
        String temp2 = "CD";
        String s4 = "ABCD";
        String s5 = "AB" + temp3;
        String s6 = "ABCD";
        String s7 = "AB" + get();
        String s8 = "AB" + getF();
        System.out.println("s1 == s2 ? " + (s1 == s2));
        System.out.println("s1 == s3 ? " + (s1 == s3));
        System.out.println("s1 == s4 ? " + (s1 == s4));
        System.out.println("s1 == s5 ? " + (s1 == s5));
        System.out.println("s1 == s6 ? " + (s1 == s6));
        System.out.println("s1 == s7 ? " + (s1 == s7));
        System.out.println("s1 == s8 ? " + (s1 == s8));
    }
 
    public static String get() {
        return "CD";
    }
 
    public static final String getF() {
        return "CD";
    }
}

可以看到烙如,對于"+"連接,編譯期間存在部分優(yōu)化:

  • "+" 直接連接多個字面量液茎,編譯期間優(yōu)化成一個字面量
  • "+" 連接字面量和final變量票彪,編譯期間優(yōu)化成一個字面量
  • "+" 連接字面量和非final變量援所,不優(yōu)化
  • "+" 連接字面量和方法返回值,不優(yōu)化

Tip

工作中遇到為了去除重復數(shù)據(jù)而使用TreeSet的場景

TreeSet<K> set = new TreeSet<>();

java中的Set一般都是通過Map實現(xiàn)队贱,使用TreeSet的無參構(gòu)造方法實例化一個對象時色冀,實際上是通過TreeMap實現(xiàn)的,這時泛型對象K必須是實現(xiàn)了Comparable接口的對象柱嫌。TreeMap的put方法進行大小比較時锋恬,先判斷是否傳入外部比較器(Comparator),如果沒有則使用K類的Comparable接口實現(xiàn)编丘,而無參構(gòu)造器實例化時是沒有外部比較器的与学。

Share

Unicode的流言終結(jié)者和編碼大揭秘
關(guān)于Unicode字符集以及Unicode編碼之間的區(qū)別與聯(lián)系

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嘉抓,隨后出現(xiàn)的幾起案子索守,更是在濱河造成了極大的恐慌,老刑警劉巖抑片,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卵佛,死亡現(xiàn)場離奇詭異,居然都是意外死亡敞斋,警方通過查閱死者的電腦和手機截汪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來植捎,“玉大人衙解,你說我怎么就攤上這事∨父” “怎么了丢郊?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵盔沫,是天一觀的道長医咨。 經(jīng)常有香客問我枫匾,道長盐捷,這世上最難降的妖魔是什么右冻? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任故源,我火速辦了婚禮嫉柴,結(jié)果婚禮上缕碎,老公的妹妹穿的比我還像新娘乙嘀。我一直安慰自己恃疯,他們只是感情好殴胧,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布委造。 她就那樣靜靜地躺著戳鹅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昏兆。 梳的紋絲不亂的頭發(fā)上枫虏,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音爬虱,去河邊找鬼隶债。 笑死,一個胖子當著我的面吹牛跑筝,可吹牛的內(nèi)容都是我干的死讹。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼曲梗,長吁一口氣:“原來是場噩夢啊……” “哼赞警!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起虏两,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤愧旦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后碘举,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體忘瓦,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年引颈,在試婚紗的時候發(fā)現(xiàn)自己被綠了耕皮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡蝙场,死狀恐怖凌停,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情售滤,我是刑警寧澤罚拟,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布台诗,位于F島的核電站,受9級特大地震影響赐俗,放射性物質(zhì)發(fā)生泄漏拉队。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一阻逮、第九天 我趴在偏房一處隱蔽的房頂上張望粱快。 院中可真熱鬧,春花似錦叔扼、人聲如沸事哭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳍咱。三九已至,卻和暖如春与柑,著一層夾襖步出監(jiān)牢的瞬間谤辜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工仅胞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留每辟,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓干旧,卻偏偏與公主長得像渠欺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子椎眯,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361