最新国产好看的视频,伊人天堂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

最新評論

锡林浩特市| 沐川县| 本溪市| 陕西省| 霸州市| 崇仁县| 萝北县| 广宁县| 确山县| 石门县| 盐边县| 鲁甸县| 墨玉县| 绥阳县| 阜阳市| 虹口区| 托克逊县| 伊通| 色达县| 汕尾市| 邯郸县| 崇州市| 邢台县| 岑溪市| 天镇县| 柘城县| 治多县| 阿拉善右旗| 虞城县| 石嘴山市| 义马市| 浑源县| 曲阜市| 金溪县| 澄江县| 镇宁| 长春市| 通许县| 宜州市| 玉溪市| 华池县|