一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java中對象的序列化方式克隆詳解

Java中對象的序列化方式克隆詳解

2020-07-26 14:06anialy Java教程

在學習編程的過程中,我覺得不止要獲得課本的知識,更多的是通過學習技術知識提高解決問題的能力,這樣我們才能走在最前方。這篇文章主要給大家介紹了Java中對象的序列化方式克隆,需要的朋友可以參考借鑒,下面來一起看看

Java 序列化技術可以使你將一個對象的狀態(tài)寫入一個Byte 流里,并且可以從其它地方把該Byte 流里的數(shù)據(jù)讀出來,重新構造一個相同的對象。

簡述:

用字節(jié)流的方式,復制Java對象

代碼:

流克隆復制函數(shù)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static Object deepClone(Object obj){
 if(obj == null){
  return null;
 }
 try {
  ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
  Object cloneObj = null;
  ObjectOutputStream out = new ObjectOutputStream(byteOut);
  out.writeObject(obj);
  ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
  ObjectInputStream in = new ObjectInputStream(byteIn);
  cloneObj = in.readObject();
  return cloneObj;
 } catch (Exception e) {
  throw new RuntimeException(e);
 }
}

ObjectClone.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package test;
 
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
 
public class ObjectClone {
 /**
  * 測試對象
  */
 private static class Person implements Serializable {
  private String name;
  private int age;
  Person(String name, int age){
   this.name = name;
   this.age = age;
  }
  @Override
  public String toString() {
   return String.format("name: %s\nage: %s", name, age);
  }
 }
  
 /**
  * 測試函數(shù)
  */
 public static void main(String[] args) {
  Person person = new Person("Henry", 22);
  Person newPerson = (Person)ObjectClone.deepClone(person);
  System.out.println(newPerson);
 }
  
 /**
  * 工具類
  *
  * @param obj
  * @return
  */
 public static Object deepClone(Object obj){
  if(obj == null){
   return null;
  }
  try {
   ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
   Object cloneObj = null;
   ObjectOutputStream out = new ObjectOutputStream(byteOut);
   out.writeObject(obj);
   ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
   ObjectInputStream in = new ObjectInputStream(byteIn);
   cloneObj = in.readObject();
   return cloneObj;
  } catch (Exception e) {
   throw new RuntimeException(e);
  }
 }
}

測試結果:

Java中對象的序列化方式克隆詳解

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

原文鏈接:http://blog.csdn.net/anialy/article/details/45279479

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: yin娃sao货调教情趣用品店 | 插得好爽 | 国产欧美国产综合第一区 | 日本xx高清视频免费观看 | 欧美性f | 99久久九九| 欧美亚洲国产精品久久久 | 亚洲天堂精品在线观看 | 国产一区二区三区日韩 | 97精品国产自在现线免费 | 91免费永久国产在线观看 | 欧美va在线播放免费观看 | 国产精品原创巨作无遮挡 | 欧美精品一区二区三区免费播放 | 精品一区视频 | 性欧美黑人巨大喷潮xxoo | 亚洲天堂男人网 | 国产毛片在线高清视频 | 狠狠的撞击发泄h | 午夜黄视频 | 国产91第一页 | 天堂中文在线免费观看 | 久久伊人精品青青草原2021 | 亚洲天堂伦理 | 日韩精品久久不卡中文字幕 | 99九九国产精品免费视频 | 91在线免费播放 | caoporen97免费公开视频 | 日本搜子同屋的日子2国语 日本爽p大片免费观看 | 被调教的校花 | 美女视频ww8888网网 | 免费观看全集 | 亚洲AV精品无码喷水直播间 | 国产成人精品一区二三区 | 久久视频这里只精品99热在线观看 | 国产成人综合精品一区 | 亚洲日本aⅴ片在线观看香蕉 | 亚洲国产成人精品不卡青青草原 | 我与旗袍老师疯狂床震 | 满溢游泳池免费土豪全集下拉版 | 天天摸天天碰色综合网 |