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

解決JavaMail附件名字過長導(dǎo)致的亂碼問題

 更新時間:2020年10月10日 14:48:29   作者:hui008  
這篇文章主要介紹了解決JavaMail附件名字過長導(dǎo)致的亂碼問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題背景:

公司有個業(yè)務(wù)場景是審核客戶機構(gòu)通過后,給客戶發(fā)送一封郵件,并將機構(gòu)相關(guān)材料以附件形式一塊發(fā)送,有些附件名正常,有些就亂了,如下圖:

后來發(fā)現(xiàn)是附近名稱過長導(dǎo)致的!

問題原因:java mail中設(shè)置附件名稱會采用 base64格式進行編碼,如果附件名稱過長會被進行切割,將剩下字符抹去,所以導(dǎo)致不知道這是什么格式的文件。

注:雖然將文件格式被改變了,但是若強制轉(zhuǎn)換成原格式(右鍵->另存為->xxx.pdf) 仍然可以進行打開,文件內(nèi)容也并非改變(這是測試后的結(jié)果)

解決方案:

由于是spring boot 項目,只需要在main方法中加入以下 代碼即可(大概意思就是,取消切割,默認是true)

System.setProperty("mail.mime.splitlongparameters", "false");

補充知識:LinkedList的增刪一定比ArrayList快嗎?

1.背景

眾所周知,arrayList底層是通過數(shù)組實現(xiàn),當(dāng)其超過容量時,會進行1.5的擴容,將原數(shù)組數(shù)據(jù)遷移至新數(shù)組中。

而LinkedList底層為雙向鏈表,其增加操作直接在尾部新增一個node節(jié)點即可。

那么,在插入相同的數(shù)據(jù)情況下(集合默認長度都是0),到底誰更快呢?

2.案例

  public static void main(String[] args) {
    List<String> array = new ArrayList<>();
    List<String> linked = new LinkedList<>();
    long start = System.currentTimeMillis();
    int index = 10000000;
    for (int i = 0; i < index; i++) {
      array.add("" + i);
    }
    long end = System.currentTimeMillis();
    System.out.println("ArrayList用時:" + (end - start) / 1000 + "s");
 
    start = System.currentTimeMillis();
    for (int i = 0; i < index; i++) {
      linked.add("" + i);
    }
    end = System.currentTimeMillis();
    System.out.println("LinkedList用時:" + (end - start) / 1000 + "s");
 
  }

3.結(jié)果

4.分析

此處我是這么理解的,arrayList是通過下標(biāo)直接去放入數(shù)據(jù),而linked需要創(chuàng)建一個Node然后 將數(shù)據(jù)放入,再與前節(jié)點建立鏈接。

然后不需要擴容的情況下,明顯arrayList快,那么擴容呢?其實我們測試用的是尾部插入。

也就是arrayList擴容后直接將前面的數(shù)據(jù)放入對應(yīng)下標(biāo),之后的在繼續(xù)按照下標(biāo)插入就行,也就是有序在尾部插入。

如果數(shù)據(jù)量大通過尾部插入的話(不指定下標(biāo),默認就是在尾部插入),linked的插入需要建立對應(yīng)的對象,綁定關(guān)系,

而array則直接放置,其擴容也是按照原來順序放入新數(shù)組,速度比較鏈表 要更快。

我還專門做了一個按照頭部插入的方式,發(fā)現(xiàn)這時明顯鏈表高于數(shù)組的速度。

5.總結(jié)(個人觀點)

數(shù)組比之鏈表:

在需要擴容的前提下

插入效率隨著下標(biāo)的遞增,其性能逐漸由鏈表偏向數(shù)組。

下標(biāo)靠中間(鏈表的查詢慘不忍睹),所以其中間效率也是極低的

而數(shù)組插入的下標(biāo)靠前,會涉及其下標(biāo)之后元素移位操作,所以index越靠前插入,效率越低

6.插入性能

以上這篇解決JavaMail附件名字過長導(dǎo)致的亂碼問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Java中的ReentrantLock鎖

    詳解Java中的ReentrantLock鎖

    這篇文章主要介紹了Java中ReentrantLock鎖的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01
  • 如何用JAVA判斷當(dāng)前時間是否為節(jié)假日、周末、工作日及調(diào)休日(不報錯:IOException!)

    如何用JAVA判斷當(dāng)前時間是否為節(jié)假日、周末、工作日及調(diào)休日(不報錯:IOException!)

    最近公司有個業(yè)務(wù)需要判斷工作日,但是每年的節(jié)假日不一樣,下面這篇文章主要給大家介紹了關(guān)于如何用JAVA判斷當(dāng)前時間是否為節(jié)假日、周末、工作日及調(diào)休日的相關(guān)資料,且不報錯:IOException!,需要的朋友可以參考下
    2023-12-12
  • 使用javax.validation.constraints對請求體進行統(tǒng)一校驗

    使用javax.validation.constraints對請求體進行統(tǒng)一校驗

    這篇文章主要介紹了使用javax.validation.constraints對請求體進行統(tǒng)一校驗方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringCloud中使用Sentinel實現(xiàn)限流的實戰(zhàn)

    SpringCloud中使用Sentinel實現(xiàn)限流的實戰(zhàn)

    限流在很多地方都可以使用的到,本篇博客將介紹如何使用SpringCloud中使用Sentinel實現(xiàn)限流,從而達到服務(wù)降級的目的,感興趣的可以了解一下
    2022-01-01
  • 淺談為什么同一個java文件只能有一個public類

    淺談為什么同一個java文件只能有一個public類

    這篇文章主要介紹了淺談為什么同一個java文件只能有一個public類,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • JNDI,JTA和JMS簡介

    JNDI,JTA和JMS簡介

    這篇文章主要介紹了JNDI,JTA和JMS的相關(guān)內(nèi)容,包括中文釋義,概念解釋等,需要的朋友可以了解下。
    2017-09-09
  • SpringBoot接收JSON類型的參數(shù)方式

    SpringBoot接收JSON類型的參數(shù)方式

    這篇文章主要介紹了SpringBoot接收JSON類型的參數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Java判斷所給年份是平年還是閏年

    Java判斷所給年份是平年還是閏年

    這篇文章主要為大家詳細介紹了Java判斷所給年份是平年還是閏年,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • java泛型基本知識及通用方法

    java泛型基本知識及通用方法

    這篇文章主要介紹了java泛型基礎(chǔ)知識及通用方法,從以下幾個方面介紹一下java的泛型: 基礎(chǔ), 泛型關(guān)鍵字, 泛型方法, 泛型類和接口,感興趣的可以了解一下
    2019-04-04
  • spring+maven實現(xiàn)郵件發(fā)送

    spring+maven實現(xiàn)郵件發(fā)送

    這篇文章主要為大家詳細介紹了spring+maven實現(xiàn)郵件發(fā)送,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評論

唐河县| 泰兴市| 云梦县| 武邑县| 扶余县| 福州市| 红安县| 莱州市| 电白县| 凤凰县| 芷江| 呼和浩特市| 普宁市| 潞西市| 盐池县| 庄浪县| 桂平市| 万安县| 东乡族自治县| 五莲县| 邯郸市| 雷山县| 耒阳市| 额济纳旗| 礼泉县| 迁西县| 波密县| 青浦区| 融水| 阳春市| 绿春县| 西城区| 万年县| 江油市| 湄潭县| 岳普湖县| 绥滨县| 通榆县| 枞阳县| 方城县| 长汀县|