日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java写入单个字符_将2个字符写入单个Java char

發布時間:2023/12/3 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java写入单个字符_将2个字符写入单个Java char 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java寫入單個字符

這是創建超低延遲的Chronicle FIX-Engine時使用的另一個好技巧。

在從字節流中讀取數據時,如果可能的話,將數據存儲在char而不是將其讀取到String效率更高。 (至少您要避免創建String對象,盡管可以通過使用緩存或使用CharSequence而不是String來緩解這種情況,但這是另一篇文章的主題。)

使用JMH基準測試,我發現了這些時間安排:(我沒有包括源代碼,因為這將是另一篇文章的主題,在此我將更詳細地描述不同的方法論)。

從一個字節流中讀取2個ascii字符到:

String - 34.48ns Pooled String - 28.57ns StringBuilder - 21.27ns char (using 2 chars method) - 6.75ns

關鍵是,將數據讀入String至少是char 3倍,而這甚至沒有考慮創建的垃圾。

因此,不用說,當您知道期望的數據始終是單個字符時,應該將其讀取為char ,而不是將其讀取為String變量。

現在,如果您知道流中期望的數據不超過2個字符,該怎么辦。 (例如在FIX 5.0標記35 msgType中找到這種情況)。 您是否必須使用字符串來容納額外的字符? 乍一看似乎如此,畢竟一個char只能包含一個字符。

可以嗎

一個Java char由2個字節組成,而不是一個字節。 因此,如果您知道您的數據是由ascii字符組成的,那么您將只使用一個字節( char中的2個字節)。 例如,“ A”是65,而“ z”是122。

您可以通過以下簡單循環打印出適合單個字節的值:

for (int i = 0; i < 256; i++) {char c = (char)i;System.out.println(i+ ":" + c); }

現在,您可以自由使用char的另一個字符來保留第二個ascii字符。

這是這樣做的方法:

在此示例中,您已讀取2個字節“ a”和“ b”,并希望將它們存儲在單個char中。

byte a = (byte)'a'; byte b = (byte)'b'; //Now place a and b into a single char char ab = (char)((a << 8) + b);//To retrieve the bytes individually see code below System.out.println((char)(ab>>8) +""+ (char)(ab & 0xff));

為了更好地理解這一點,讓我們看一下二進制文件:

byte a = (byte)'a' // 01100001byte b = (byte)'b' // 01100010As you can see below, when viewed as a char, the top 8 bits are not being usedchar ca = 'a' // 00000000 01100001char cb = 'b' // 00000000 01100010Combine the characters with a taking the top 8 bits and b the bottom 8 bits.char ab = (char)((a << 8) + b); // 01100001 01100010

摘要

將數據讀入char而不是String效率更高。 如果您知道最多有2個ascii字符,則可以將它們組合成一個Java char。 當然,只有在您確實擔心超低延遲的情況下才使用此技術!

翻譯自: https://www.javacodegeeks.com/2016/01/writing-2-characters-single-java-char.html

java寫入單個字符

總結

以上是生活随笔為你收集整理的java写入单个字符_将2个字符写入单个Java char的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。