簡體   English   中英

搜索字符串與字節數組哪個更有效?

[英]Which is more efficient, searching on string vs bytearrays?

我們有一個用例,我們想決定使用字符串還是字節[]。 使用字符串給我們帶來了在應用程序的各個層進行多次編碼和解碼的懲罰,而 byte[] 本質上避免了這種情況(這個假設是否正確?)。 而且我們可能需要對這個數據結構(string/byte[])做一些“concatenations”和“contains/indexOf”操作。 我試圖了解搜索字符串與搜索原始字節有何不同。 如果是這樣,我們可以安全地使用 byte[] go 而不會受到任何編碼懲罰。

在字符串或其等效的原始字節上搜索哪個是有效的?

這是蘋果與蘋果的比較嗎?

處理字節 arrays 比處理字符串效率更高,因為 Java 中的字符是 16 位的。 但是,如果您需要與字符處理相關的功能,那么字節 arrays 不適合(除非您將應用程序限制為 7 位 US-ASCII,我不推薦)。

由於 Java 9 String class 內部使用byte[] ,因此每個字符將使用一個字節。 如果您只處理 ASCII 字符,它將使用每個字符一個字節,因此您不會通過自己使用byte[]來保存任何 memory,如果這是您所關心的。

如果您有兩個或更多字節的非 ASCII 字符,則不能假設一個字符占用一個字節。

您必須自己處理編碼和解碼,Java 中的String class 已經在這方面進行了非常優化。

簡而言之,我會推薦使用String ,除非你真的可以證明使用byte[]優於String的性能提升。

暫無
暫無

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

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