最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java封裝類型與基礎(chǔ)類型對比示例分析

 更新時間:2023年11月22日 10:17:26   作者:求平安  
這篇文章主要為大家介紹了java封裝類型與基礎(chǔ)類型對比示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

封裝類型以Long為例,基礎(chǔ)類型以long為例

1 比較equals與==

@Test
public void testEquals() {
    Long l1 = 10000L;
    long l2 = 10000l;
    Long l3 = 10000l;
    // 封裝類型與基礎(chǔ)類型==比較的時候,封裝類型會自動轉(zhuǎn)成基本類型做比較
    System.out.println(l1 == l2); // true
    System.out.println(l1 == l3); // false
    System.out.println(l1.longValue() == l3.longValue()); // true
}

總結(jié)1:如果使用==號比較,需要把1側(cè)的類型轉(zhuǎn)成基礎(chǔ)類型

2 速度equals與==哪個更快呢?

@Test
public void testFast() {
    // string的equals和long的equals,哪個更快
    int N = 1000000;
    long[] l1 = new long[N];
    long[] l2 = new long[N];
    Long[] data1 = new Long[N];
    Long[] data2 = new Long[N];
    String[] str1 = new String[N];
    String[] str2 = new String[N];
    long j = 0;
    for (int i = 0; i < N; i++) {
        data1[i] = j;
        data2[i] = j;
        str1[i] = String.valueOf(j);
        str2[i] = String.valueOf(j++);
    }
    compareL(l1, l2, N); // 10
    compareLong1(data1, data2, N); // 100
    compareLong(data1, data2, N); // 600
    // 總結(jié):Long1.longValue()==Long2.longValue() 比 Long1.equals(Long2) 更快
    compareStr(str1, str2, N); // 1000
}
public void compareL(long[] data1, long[] data2, int N) {
    long startL = System.currentTimeMillis();
    for (int i = 0; i < 100; i++) {
        for (int j = 0; j < N; j++) {
            if (data1[j] == (data2[j])) {
            }
        }
    }
    long endL = System.currentTimeMillis();
    System.out.println("compareL tasks times :" + (endL - startL));
}
public void compareLong(Long[] data1, Long[] data2, int N) {
    long startL = System.currentTimeMillis();
    for (int i = 0; i < 100; i++) {
        for (int j = 0; j < N; j++) {
            if (data1[j].equals(data2[j])) {
            }
        }
    }
    long endL = System.currentTimeMillis();
    System.out.println("compareLong tasks times :" + (endL - startL));
}
public void compareLong1(Long[] data1, Long[] data2, int N) {
    long startL = System.currentTimeMillis();
    for (int i = 0; i < 100; i++) {
        for (int j = 0; j < N; j++) {
            if (data1[j].longValue() == data2[j].longValue()) {
            }
        }
    }
    long endL = System.currentTimeMillis();
    System.out.println("compareLong tasks times :" + (endL - startL));
}
public void compareStr(String[] data1, String[] data2, int N) {
    long startL = System.currentTimeMillis();
    for (int i = 0; i < 100; i++) {
        for (int j = 0; j < N; j++) {
            if (data1[j].equals(data2[j])) {
            }
        }
    }
    long endL = System.currentTimeMillis();
    System.out.println("compareStr tasks times :" + (endL - startL));
}

總結(jié)

通過compareLong1和compareLong對比,可以發(fā)現(xiàn)在保證數(shù)據(jù)正確的前提下,==比equals的速度要快。

結(jié)合總結(jié)1,我們可以在封裝類型比較多時候,使用l1.longValue() == l2.longValue();

以上就是java封裝類型與基礎(chǔ)類型對比示例分析的詳細(xì)內(nèi)容,更多關(guān)于java封裝類型基礎(chǔ)類型對比的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringSecurity7.0新特性詳解

    SpringSecurity7.0新特性詳解

    本文主要介紹了Spring Security 7.0 新特性詳解,文中通過示例代碼介紹的非常詳細(xì),幫助你更好地理解和應(yīng)用這些新特性,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-04-04
  • 用Spring Native將SpringBoot程序轉(zhuǎn)換為GraalVM

    用Spring Native將SpringBoot程序轉(zhuǎn)換為GraalVM

    這篇文章主要介紹了用Spring Native將SpringBoot程序轉(zhuǎn)換為GraalVM的方法,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot,感興趣的朋友可以了解下
    2021-04-04
  • springBoot項(xiàng)目中使用@Value取值出現(xiàn)的問題及解決

    springBoot項(xiàng)目中使用@Value取值出現(xiàn)的問題及解決

    這篇文章主要介紹了springBoot項(xiàng)目中使用@Value取值出現(xiàn)的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Java中String類startsWith方法詳解

    Java中String類startsWith方法詳解

    這篇文章主要給大家介紹了關(guān)于Java中String類startsWith方法的相關(guān)資料,startsWith() 方法用于檢測字符串是否以指定的前綴開始,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • Java使用okhttp3發(fā)送請求的實(shí)現(xiàn)示例

    Java使用okhttp3發(fā)送請求的實(shí)現(xiàn)示例

    OkHttp3是一個高效的HTTP客戶端,支持HTTP/2、GZIP壓縮、響應(yīng)緩存和異步/同步請求,本文就來介紹一下Java使用okhttp3發(fā)送請求的實(shí)現(xiàn)示例,感興趣的可以了解一下
    2025-12-12
  • java中stream的peek()用法詳解

    java中stream的peek()用法詳解

    這篇文章主要介紹了java中stream的peek()用法詳解,peek的作用是
    改變元素的內(nèi)部狀態(tài),對每個object執(zhí)行 saveInfomation(object, params),然后把結(jié)果收集到一個 List 里,這里涉及到了最終操作,需要的朋友可以參考下
    2024-01-01
  • Java簡單統(tǒng)計(jì)字符串中漢字,英文字母及數(shù)字?jǐn)?shù)量的方法

    Java簡單統(tǒng)計(jì)字符串中漢字,英文字母及數(shù)字?jǐn)?shù)量的方法

    這篇文章主要介紹了Java簡單統(tǒng)計(jì)字符串中漢字,英文字母及數(shù)字?jǐn)?shù)量的方法,涉及java針對字符串的遍歷、編碼轉(zhuǎn)換、判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • Mybatis中的resultType和resultMap查詢操作實(shí)例詳解

    Mybatis中的resultType和resultMap查詢操作實(shí)例詳解

    resultType是直接表示返回類型的,而resultMap則是對外部ResultMap的引用,resultMap解決復(fù)雜查詢是的映射問題。這篇文章主要介紹了Mybatis中的resultType和resultMap查詢操作實(shí)例詳解,需要的朋友可以參考下
    2016-09-09
  • MyBatis之二級緩存用法及說明

    MyBatis之二級緩存用法及說明

    本文介紹了MyBatis二級緩存的設(shè)計(jì)與實(shí)現(xiàn),涵蓋其在MyBatis中的位置、源碼解析、詳細(xì)使用案例、最佳實(shí)踐總結(jié)及源碼調(diào)試技巧等內(nèi)容,強(qiáng)調(diào)了設(shè)計(jì)模式的應(yīng)用,如裝飾器模式、模板方法模式等,并提供了緩存穿透、擊穿、雪崩等問題的解決方案
    2026-05-05
  • SpringBoot2開發(fā)從0開始Spring?Initailizr初始化

    SpringBoot2開發(fā)從0開始Spring?Initailizr初始化

    這篇文章主要為大家介紹了SpringBoot2從0開始lombok、devtools、Spring?Initailizr的開發(fā)技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評論

闽清县| 淮安市| 郑州市| 司法| 韶山市| 河池市| 会昌县| 剑川县| 搜索| 龙井市| 城固县| 孝感市| 通化县| 罗江县| 乐昌市| 延边| 许昌县| 墨玉县| 平和县| 西安市| 商南县| 双江| 晋中市| 靖边县| 尖扎县| 车险| 大埔县| 辽源市| 汉源县| 海安县| 凤山县| 三河市| 揭东县| 攀枝花市| 安顺市| 巴林右旗| 治多县| 柳林县| 通河县| 安康市| 临清市|