簡體   English   中英

適用於Java的UTF-8字符串類

[英]UTF-8 String class for java

我需要在內存中容納很多字符串對象(數百MB),並且我想以UTF-8格式保存它們,因為在大多數情況下,它將需要默認實現使用的一半內存。
默認的String類需要12個字符的字符串(60個字節)(請參見http://blog.griddynamics.com/2010/01/java-tricks-reducing-memory-consumption.html )。
我的大多數字符串都長10到20個字符。
我想知道是否有一些開源庫為此類字符串提供包裝器?
我知道如何將String轉換為UTF-8字節數組,但是我正在尋找一個包裝器類,該包裝器類將提供所有必需的實用程序功能(哈希,等於,toString,fromString等)。

Apache Avro具有實現CharSequenceUTF8包裝器類 ,但我不知道此類對象的內存消耗

Hadoop具有Text類該類具有您想要的那種接口

如果要為每個字符串使用不同的對象,並且希望它們盡可能緊湊,請使用字節數組。 這將是每個字符1個字節vs 2個字節,並且您將沒有String標頭的開銷(每個標頭可能會增加32個字節)。

但是,當然,如果不先轉換為String,就無法在這些方法上使用任何String方法。

但是,如果您真的想節省空間,可以將字符串背靠背存儲在一些較大的數組中,並使用“摻雜向量”定位各個字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM