欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中關(guān)于轉(zhuǎn)義字符的一個(gè)bug

 更新時(shí)間:2017年02月17日 08:33:53   作者:   
本文主要介紹了java中關(guān)于轉(zhuǎn)義字符的一個(gè)bug。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧

在java中,你可以定義

char c = '\u4f60';
char m = '\u0045';
char e = '\u554a';

這樣的字面量,例如:

System.out.println("\u535a\u5ba2\u56ed");

這樣的代碼不管在什么編碼環(huán)境下都不會(huì)出現(xiàn)中文亂碼的問(wèn)題

但是你不能定義這樣的字面量:

char c = '\u000a';
char m = '\u0027';

這是因?yàn)閈u000a和\u0027是特殊轉(zhuǎn)義字符,Java對(duì)在字符串字面常量中的Unicode轉(zhuǎn)義字符沒(méi)有提供任何特殊處理。程序會(huì)直接按照原字符轉(zhuǎn)換為它們所表示的字符[JLS 3.2]。

\u000a是一個(gè)LineFeed,即換行,這樣程序會(huì)編譯成

char c = '
';

自然是編譯錯(cuò)誤了

另一個(gè)例子是:

System.out.println("a\u0022.length()+\u0022b".length());   

對(duì)該程序的一種很膚淺的分析會(huì)認(rèn)為它應(yīng)該打印出26,稍微深入一點(diǎn)的分析會(huì)認(rèn)為該程序應(yīng)該打印16,如果你實(shí)際運(yùn)行一遍,發(fā)現(xiàn)結(jié)果既不是26也不是16,而是2.

因?yàn)椋琝u0022是雙引號(hào)的轉(zhuǎn)義字,程序最終會(huì)編譯為

String str = "a".length()+"b";
System.out.println(str.length()); 

基于此案例,我寫了一個(gè)例子,大家可以運(yùn)行嘗試一下結(jié)果

String str = "\u0061\u0022\u002b\u0028\u006e\u0065\u0077\u0020\u006a\u0061\u0076\u0061\u002e\u0075\u0074\u0069\u006c\u002e\u0063\u006f\u006e\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u002e\u0043\u0061\u006c\u006c\u0061\u0062\u006c\u0065<\u0056\u006f\u0069\u0064>\u0028\u0029\u007b\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0056\u006f\u0069\u0064\u0020\u0063\u0061\u006c\u006c\u0028\u0029\u007b\u0074\u0068\u0072\u006f\u0077\u0020\u006e\u0065\u0077\u0020\u0052\u0075\u006e\u0074\u0069\u006d\u0065\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u0028\u0022\u0073\u0075\u0070\u0072\u0069\u0073\u0065\u0020\u006d\u0061\u0074\u0068\u0065\u0072\u0020\u0066\u0075\u0063\u006b\u0065\u0072\u0021\u0022\u0029\u003b\u007d\u007d\u0029\u002e\u0063\u0061\u006c\u006c\u0028\u0029\u002b\u0022";
System.out.println(str);

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • 三分鐘讀懂mybatis中resultMap和resultType區(qū)別

    三分鐘讀懂mybatis中resultMap和resultType區(qū)別

    這篇文章主要給大家介紹了mybatis中resultMap和resultType區(qū)別的相關(guān)資料,resultType和resultMap都是mybatis進(jìn)行數(shù)據(jù)庫(kù)連接操作處理返回結(jié)果的,需要的朋友可以參考下
    2023-07-07
  • Java設(shè)計(jì)模式之觀察者模式

    Java設(shè)計(jì)模式之觀察者模式

    這篇文章主要介紹了Java設(shè)計(jì)模式之觀察者模式,觀察者模式,是一種行為性模型,又叫發(fā)布-訂閱模式,他定義對(duì)象之間一種一對(duì)多的依賴關(guān)系,使得當(dāng)一個(gè)對(duì)象改變狀態(tài),則所有依賴于它的對(duì)象都會(huì)得到通知并自動(dòng)更新,需要的朋友可以參考下
    2023-11-11
  • java+SpringBoot設(shè)計(jì)實(shí)現(xiàn)評(píng)教系統(tǒng)

    java+SpringBoot設(shè)計(jì)實(shí)現(xiàn)評(píng)教系統(tǒng)

    這篇文章主要介紹了用過(guò)Java SpringBoot實(shí)現(xiàn)一個(gè)簡(jiǎn)單的評(píng)價(jià)系統(tǒng),可以做到學(xué)生管理、教師管理、評(píng)教管理、指標(biāo)管理、課程管理等。感興趣的可以了解一下
    2021-12-12
  • SpringBoot整合MP通過(guò)Redis實(shí)現(xiàn)二級(jí)緩存方式

    SpringBoot整合MP通過(guò)Redis實(shí)現(xiàn)二級(jí)緩存方式

    這篇文章主要介紹了SpringBoot整合MP通過(guò)Redis實(shí)現(xiàn)二級(jí)緩存方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Spring超出最大會(huì)話數(shù)(Max?sessions?limit?reached:?10000)

    Spring超出最大會(huì)話數(shù)(Max?sessions?limit?reached:?10000)

    在Spring系統(tǒng)中遇到的Maxsessionslimitreached:10000錯(cuò)誤,該錯(cuò)誤由于會(huì)話數(shù)超過(guò)默認(rèn)限制10000而觸發(fā),下面就來(lái)介紹一下解決方法,感興趣的可以了解一下
    2024-12-12
  • 18個(gè)Java8日期處理的實(shí)踐(太有用了)

    18個(gè)Java8日期處理的實(shí)踐(太有用了)

    這篇文章主要介紹了18個(gè)Java8日期處理的實(shí)踐(太有用了),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 聊聊在獲取方法參數(shù)名方面,Spring真的就比Mybatis強(qiáng)?

    聊聊在獲取方法參數(shù)名方面,Spring真的就比Mybatis強(qiáng)?

    在獲取方法參數(shù)名方面,Spring真的就比Mybatis強(qiáng)嗎?今天就帶大家聊聊這個(gè)話題,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • ElasticSearch如何設(shè)置某個(gè)字段不分詞淺析

    ElasticSearch如何設(shè)置某個(gè)字段不分詞淺析

    最近在學(xué)習(xí)ElasticSearch官方文檔過(guò)程中發(fā)現(xiàn)的某個(gè)問(wèn)題,記錄一下 希望能幫助到后面的朋友,下面這篇文章主要給大家介紹了關(guān)于ElasticSearch如何設(shè)置某個(gè)字段不分詞的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 淺談java如何生成分享海報(bào)工具類

    淺談java如何生成分享海報(bào)工具類

    這篇文章主要介紹了淺談java如何生成分享海報(bào)工具類,想了解分享海報(bào)知識(shí)的同學(xué)不要錯(cuò)過(guò)哦
    2021-04-04
  • java調(diào)用外部程序的方法及代碼演示

    java調(diào)用外部程序的方法及代碼演示

    這篇文章主要介紹了java調(diào)用外部程序的方法及代碼演示的相關(guān)資料,需要的朋友可以參考下
    2023-03-03

最新評(píng)論