数组序列化 java_Java基础之数组序列化、反序列化 小发现(不知道 是不是有问题)...
結論:? 數組,無論是否聲明為transient,都是可以序列化、反序列化的。
測試情況如下:
1.兩種類型的數組:int 、String;
2 聲明為transient? 或者不做任何修飾;.
3.將數組 按ObjectOutput存入文件,使用ObjectInputStream讀取打印出來。
結果我發現無論是基本類型還是引用類型,無論 是否將數組修飾為transient,都是可以序列化和反序列化的。
貼一段代碼如下:
File file = new File("test.txt");
FileOutputStream fout = new FileOutputStream(file);
ObjectOutputStream objOut = new ObjectOutputStream(fout);
objOut.writeObject(arrs);
objOut.close();
FileInputStream fin = new FileInputStream(file);
ObjectInputStream objectInputStream = new ObjectInputStream(fin);
int[] arrs = (int[]) objectInputStream.readObject();
for (int str : arrs) {
System.out.println(str);
}
這個問題是我在看ArrayList的源碼時, 發現的,ArrayList中定義數組如下:
private transient Object[] elementData;;
將ArrayList序列化和反序列化都是可以 讀取 其中的值的,so最后測試了下數組,發現了這個問題.
不知道 結論對不對, 求? 修正我的 問題。
我查看了這篇文章:
但是他好像僅解釋了為什么使用修飾? ArrayList中的數組,卻沒有說清楚(不知道是否我 理解 有問題)為什么? ArrayList 序列化、反序列化 都是可以 。
總結
以上是生活随笔為你收集整理的数组序列化 java_Java基础之数组序列化、反序列化 小发现(不知道 是不是有问题)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java能过吗_java – 你能通过
- 下一篇: commons-fileupload、s