<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      java~CompactStrings字符壓縮技術

      概念

      在 Java 中,charbyte 類型占用的存儲空間是不同的。

      1. char 類型:char 是 16 位無符號的 Unicode 字符類型,用于表示單個字符。在 Java 中,char 類型占用 2 個字節(16 位)的存儲空間。

      2. byte 類型:byte 是 8 位有符號整數類型,表示范圍在 -128 到 127 之間的整數。在 Java 中,byte 類型占用 1 個字節(8 位)的存儲空間。

      需要注意的是,雖然 charbyte 在 Java 中分別占用不同的存儲空間,但它們表示的數據類型和范圍也是不同的。char 用于表示字符,而 byte 用于表示整數。在處理數據時,應根據具體的需求和數據類型選擇合適的類型。

      char(0~65535)

      char 在 Java 中占用 2 個字節(16 位)的空間是因為 Java 使用的是 Unicode 字符編碼,其中字符的表示范圍為 0 到 65535(即 2^16-1)。

      Unicode 是一種國際標準字符集,為世界上幾乎所有的字符分配了唯一的標識符。它包含了各種語言的字符、符號、表情等。為了能夠表示這么多的字符,Java 選擇了使用 2 個字節(16 位)來存儲 char 類型。

      Java 的 char 類型使用的是 UTF-16 編碼,它是一種可變長度的編碼方式,可以使用 2 個字節來表示大部分的字符,但對于一些特殊字符(如表情符號),可能需要使用額外的代碼點進行編碼。

      需要注意的是,Unicode 字符集實際上定義了超過 65536 個字符。為了表示超出 65535 的字符,Unicode 使用了一種擴展編碼方式,稱為 UTF-16 編碼。UTF-16 編碼使用了一種叫作代理對(Surrogate Pair)的技術,將一個字符表示為兩個 char 類型的編碼單元。

      因此,雖然 char 類型的范圍是 0 到 65535,但實際上可以表示更多的字符。在處理 Unicode 字符時,需要特別注意代理對的處理,以確保正確地處理和顯示字符。

      byte(-128~127)

      在 Java 中,byte 是一個基本數據類型,用于表示 8 位的有符號整數。它的取值范圍為 -128 到 127。

      byte 類型通常用于處理字節數據,例如讀取和寫入二進制文件、網絡傳輸中的字節流、加密算法等。由于 byte 類型占用的空間較小,因此在需要節省內存或處理字節級數據的情況下,經常使用 byte 類型。

      以下是一些關于 byte 類型的特點和用法:

      1. 取值范圍:byte 類型的取值范圍為 -128 到 127??梢酝ㄟ^ Byte.MIN_VALUEByte.MAX_VALUE 常量來獲取最小值和最大值。

      2. 內存占用:byte 類型占用 1 個字節(8 位)的存儲空間。

      3. 字節操作:byte 類型適用于處理字節級數據,例如讀取和寫入二進制文件、網絡傳輸中的字節流等??梢允褂幂斎胼敵隽鳌⒕彌_流等類來讀寫 byte 數據。

      4. 數組:可以創建 byte 數組來存儲一組字節數據。例如,byte[] data = new byte[10]; 創建了一個長度為 10 的 byte 數組。

      5. 類型轉換:byte 類型可以與其他整數類型進行相互轉換??梢允褂妙愋娃D換運算符(如 (byte) value)將其他整數類型轉換為 byte 類型,或者將 byte 類型轉換為其他整數類型。

      需要注意的是,在進行 byte 類型的運算時,會發生整數提升。也就是說,byte 類型的操作數會先被提升為 int 類型,然后進行運算。

      byte a = 10;
      byte b = 20;
      byte c = (byte) (a + b);  // 需要進行類型轉換
      

      總而言之,byte 類型在 Java 中是用于表示 8 位有符號整數的數據類型,適用于處理字節級數據和節省內存的場景。

      java9對字符串存儲的優化Compact Strings(緊湊字符串)

      Java 9 對字符串的優化主要集中在字符串存儲和處理方面,引入了一項被稱為 Compact Strings(緊湊字符串)的改進。Compact Strings 的目標是減少字符串在內存中的占用空間,提高性能和效率。

      在 Java 8 及之前的版本中,字符串內部使用 char 數組來存儲字符數據,并使用額外的 int 型字段記錄字符串的偏移量和長度。這種表示方式在包含大量 ASCII 字符的字符串中會造成空間浪費,因為每個字符仍然占用 2 個字節的存儲空間。

      Java 9 引入了 Compact Strings 的概念,對于僅包含 Latin-1 字符集(即 Unicode 編碼范圍在 U+0000 至 U+00FF 之間)的字符串,使用字節數組存儲數據,每個字符只占用 1 個字節。這樣可以大大減少這類字符串的內存占用。對于包含非 Latin-1 字符的字符串,仍然使用 char 數組存儲數據,每個字符占用 2 個字節。

      Compact Strings 的優化帶來了兩個主要的好處:

      1. 內存占用減少:對于僅包含 Latin-1 字符的字符串,在內存中占用的空間減少一半,從而可以降低內存消耗。

      2. 性能提升:減少了字符串的內存占用,可以減少內存的分配和垃圾回收的頻率,從而提高了性能和效率。

      需要注意的是,Compact Strings 僅適用于字符串對象的內部表示方式,對于開發者來說,字符串的使用方式和 API 并沒有變化。開發者無需對現有的代碼進行修改,可以繼續使用字符串相關的方法和操作。

      這項優化是在底層實現層面上進行的,旨在提高 Java 運行時的性能和內存利用率,使開發者能夠更高效地處理字符串數據。

      -XX:+CompactStrings

      在 Java 命令行啟動時,可以通過使用 -XX:+CompactStrings 參數來開啟 Compact Strings。該參數告訴 Java 虛擬機在啟動時啟用緊湊字符串(Compact Strings)優化。

      以下是使用 Java 命令行啟動并開啟 Compact Strings 的示例:

      java -XX:+CompactStrings -jar YourJarFile.jar
      

      在上述示例中,-XX:+CompactStrings 參數指示 Java 虛擬機開啟 Compact Strings 優化。-jar YourJarFile.jar 部分是指定要執行的 JAR 文件。

      請注意,Compact Strings 優化是默認開啟的,可以在不使用 -XX:+CompactStrings 參數的情況下自動啟用。但如果需要明確指定開啟或禁用 Compact Strings,可以使用相應的命令行參數。

      posted @ 2023-06-26 16:19  張占嶺  閱讀(201)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩 一区二区在线观看| 午夜福利日本一区二区无码| 精品久久久久久无码专区不卡| 99热精品国产三级在线观看| 久久久久久无码午夜精品直播| 国内精品综合九九久久精品| 亚洲一区成人av在线| 欧美日韩精品一区二区三区高清视频 | 欧美国产综合欧美视频| 国产精品播放一区二区三区| 成人免费无遮挡无码黄漫视频| 久久夜色国产噜噜亚洲av| 国产大学生粉嫩无套流白浆 | 麻豆一区二区三区香蕉视频| 国产午夜一区二区在线观看 | 激情文学一区二区国产区| 国产三级精品三级在线看| 成人av午夜在线观看| 久久亚洲国产精品久久| 日韩人妻无码一区二区三区 | 欧美巨大巨粗黑人性aaaaaa| 91色老久久精品偷偷蜜臀| 国产肥臀视频一区二区三区| 亚洲免费观看在线视频| 九九热免费精品视频在线| 国产乱码1卡二卡3卡四卡5| 欧美成人精品手机在线| 日本一区三区高清视频| 无码国产精品一区二区免费3p| 真实国产老熟女无套内射 | 青青青爽在线视频观看| 最近中文字幕国产精品| 日韩精品亚洲不卡一区二区| 日韩一区二区三区无码影院| 中文字幕久无码免费久久| 亚洲人成网站18禁止无码| 齐齐哈尔市| 欧美色丁香| 漂亮人妻被修理工侵犯| AV在线亚洲欧洲日产一区二区| 精品国模一区二区三区|