我寫了一個小的測試程序,以顯示我們需要多少字節序列Integer
對象:爲什麼序列化整數需要很多(81)字節?
ByteArrayOutputStream data = new ByteArrayOutputStream();
try {
ObjectOutputStream output = new ObjectOutputStream(data);
output.writeObject(1);
output.flush();
System.out.println(data.toByteArray().length);
} catch (IOException e) {
e.printStackTrace();
}
但是,結果是令人驚訝的,它需要81個字節。如果我序列化String
「1」,它只需要8個字節。我知道java已經對String序列化進行了優化,但爲什麼不爲Integer做同樣的事情?我認爲這不應該很困難。
還是有人有一些解決方法?我需要一個可以序列化所有對象和基本類型的方法。謝謝你的回答!
如果您調用writeInt而不是writeObject會發生什麼?這應該避免自動裝箱int。 – bstar55