實現對象克隆

實現Serializable接口,通過對象的序列化和反序列化實現克隆,可以實現真正的深度克隆,代碼如下

package com.lovo;  import java.io.ByteArrayInputStream;  
import java.io.ByteArrayOutputStream;  
import java.io.ObjectInputStream;  
import java.io.ObjectOutputStream;  public class MyUtil {  private MyUtil() {  throw new AssertionError();  }  public static <T> T clone(T obj) throws Exception {  ByteArrayOutputStream bout = new ByteArrayOutputStream();  ObjectOutputStream oos = new ObjectOutputStream(bout);  oos.writeObject(obj);  ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());  ObjectInputStream ois = new ObjectInputStream(bin);  return (T) ois.readObject();  // 說明:調用ByteArrayInputStream或ByteArrayOutputStream對象的close方法沒有任何意義  // 這兩個基于內存的流只要垃圾回收器清理對象就能夠釋放資源  
    }  
}  

來源:https://www.cnblogs.com/roucheng/p/javatimu.html

轉載于:https://www.cnblogs.com/of-course/p/9346277.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397459.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397459.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397459.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux 讀取內存顆粒,linux查看主板內存槽與內存信息的命令dmidecode怎么用

在Linux中&#xff0c;我們常常使用命令來實現許多操作&#xff0c;比如查看內存信息等&#xff0c;下面小編就為大家帶來一篇linux查看主板內存槽與內存信息的命令dmidecode方法。小編覺得挺不錯的&#xff0c;現在就分享給大家&#xff0c;也給大家做個參考。一起跟隨小編過來…

python 圖像處理(從安裝Pillow開始)

python 圖像處理(從安裝Pillow開始) python2.x及以下用的是PIL(圖像處理庫是 PIL(Python Image Library))&#xff0c;最新版本是 1.1.7 可在http://www.pythonware.com/products/pil/index.htm 下載和學習。 不過從該網站可看出它不支持python3.x Pillow由PIL而來(支持3.x)&…

手機還是不要隨便更新的好

新入mate9pro 不到一個月&#xff0c;手賤升級了系統版本&#xff0c;出現導航搜索不到衛星的情況&#xff0c;軟件下載了高德地圖、騰訊地圖、百度地圖&#xff0c;逐一卸載安裝重試&#xff0c;沒一個能成功的&#xff0c;后來又下載了專業搜星軟件&#xff0c;還是搜不到衛星…

Java對象容器——List

為什么80%的碼農都做不了架構師&#xff1f;>>> 在Java中&#xff0c;我們可以用數組來存放同類型的變量或對象&#xff0c;但是數組有一個缺陷&#xff0c;它的長度不可變&#xff0c;必須在定義時給定其長度&#xff0c;所以說在一些場合下不適用。例如我們要存放…

STL學習筆記(數值算法)

運用數值算法之前必須先加入頭文件<numeric> 加工運算后產生結果 1.對序列進行某種運算 T accumulate(InputIterator beg,InputIterator end, T initValue) T accumulate(InputIterator beg,InputIterator end, T initValue,BinaryFunc op) 1.第一種形式計算InitValue和…

angualejs

為什么80%的碼農都做不了架構師&#xff1f;>>> http://segmentfault.com/a/1190000000347412 http://www.xker.com/page/e2015/06/199141.html http://www.runoob.com/angularjs/angularjs-application.html http://blog.csdn.net/lglgsy456/article/details/3690…

linux函數地址獲取函數名,函數名/函數地址/函數指針

函數指針&#xff1a;1。指針變量 2。指針變量指向函數這正如用指針變量可指向整型變量、字符型、數組一樣。在編譯時&#xff0c;每一個函數都有一個入口地址&#xff0c;該入口地址就是函數指針所指向的地址。可利用該指針變量調用函數&#xff0c;就如同用指針變量可引用其他…

SPOJ SORTBIT Sorted bit squence (數位DP,入門)

題意&#xff1a; 給出一個范圍[m,n]&#xff0c;按照二進制表示中的1的個數從小到大排序&#xff0c;若1的個數相同&#xff0c;則按照十進制大小排序。求排序后的第k個數。注意&#xff1a;m*n>0。 思路&#xff1a; 也是看論文的。一開始也能想到是這種解法&#xff0c;枚…

老web換新枝----Sails.js移動設備的全新生產力(五)

自定義模型操作目前為止&#xff0c;我們的進展非常順利&#xff0c;我們使用了 Sails 的默認路由來訪問或修改模型實例。這些默認設置&#xff08;包含在 Sails Blueprint API 中&#xff09;負責我們期望從 Web 或移動應用程序獲得的基本的創建&#xff08;create&#xff09…

linux 驅動沒有設備id,linux不同總線的設備和驅動的匹配過程分析

摘自&#xff1a;前幾日讀書會&#xff0c;談到linux中driver和device的匹配問題&#xff0c;我認為是通過設備名來匹配的&#xff0c;因為我之前看過platform的驅動&#xff0c;它就是通過設備name和驅動name來進行匹配&#xff0c;所以我確信linux里邊所有的驅動和設備都是這…

理解Flight框架核心

看到了這篇分析flight的文章還不錯&#xff0c;就轉過來了&#xff0c;地址&#xff1a;https://blog.csdn.net/sky_zhe/article/details/38906689 Flight框架&#xff08;官網&#xff09;是一個微型的PHP框架&#xff0c;它簡單&#xff0c;快速&#xff0c;可擴展。借助Flig…

安裝ISO系統(原版系統)系統終極方法

首先進入PE&#xff0c;在PE下找到你的系統ISO鏡像&#xff0c;解壓縮&#xff0c;然后將鏡像里的boot文件夾、sources文件夾和bootmgr文件提取出來&#xff0c;然后復制到你要安裝的分區&#xff08;比如c盤&#xff09;&#xff0c;接下來拔下U盤&#xff0c;重新啟動計算機&…

intel i218v千兆網卡 linux驅動,適用于英特爾? 千兆位以太網網絡連接的 Linux* 基礎驅動程序...

適用于英特爾 千兆位以太網網絡連接的 Linux* igb* 基礎驅動程序安裝說明Linux* igb 驅動程序支持所有基于 82575、82576、82580&#xff0c;I350&#xff0c;I354 和 I210/I211 的英特爾 千兆位以太網網絡連接。有關驅動程序配置的詳細信息&#xff0c;請參閱下載中心中的自述…

Linux下如何抓取串口碼流,linux alsa音頻中采樣率fs、比特率BCLK 、主時鐘MCLK關系...

轉&#xff1a;https://blog.csdn.net/lugandong/article/details/72468831一、拿512fs說話&#xff1a;看圖知道采樣的位深是32bit(位)&#xff0c;左右聲道各占了8*32BCLK&#xff0c;那一個完整的LRCLK一共8*32*2512BCLK。其實xxxfs就是這么算出來的&#xff0c;也是固定的&…

第 39 章 ThinkPHP--CURD 操作

學習ThinkPHP 模型中的 CURD 操作&#xff0c;也就是增刪改查。通過 CURD&#xff0c; 我們可以方便快速的對數據庫進行操作。 1.數據創建 2.數據寫入 3.數據讀取 4.數據更新 5.數據刪除 一&#xff0e;數據創建 在數據庫添加等操作之前&#xff0c;我們首先需要對數據進行創建…

洛谷 P1529 回家 Bessie Come Home Label:Dijkstra最短路 亂搞

題目描述 現在是晚餐時間,而母牛們在外面分散的牧場中。 農民約翰按響了電鈴,所以她們開始向谷倉走去。 你的工作是要指出哪只母牛會最先到達谷倉(在給出的測試數據中,總會有且只有一只最快的母牛)。 在擠奶的時候(晚餐前),每只母牛都在她自己的牧場上,一些牧場上可能沒有母牛。…

linux語言的說明順序有哪些,(linux常用頭文件詳解.doc

(linux常用頭文件詳解linux常用頭文件詳解POSIX標準定義的頭文件??????? 目錄項???????? 文件控制??? 文件名匹配類型??? 路徑名模式匹配類型??????? 組文件??? 網絡數據庫操作??????? 口令文件??? 正則表達式??????? TAR歸檔…

第 39 章 ThinkPHP--視圖

學習要點&#xff1a; 1.模版定義 2.賦值和渲染 3.模版地址 4.獲取內容 本節課&#xff0c;我們將要學習一下 ThinkPHP 視圖&#xff0c;視圖是 Web 的可見內容&#xff0c;一般是 HTML 結合 PHP 獲取的數據提供給用戶使用的部分&#xff0c;屬于 MVC 中的 V。 一&#xff0e;模…

mysql日志(介紹 路徑修改 備份)

2019獨角獸企業重金招聘Python工程師標準>>> 環境&#xff1a;senos6 軟件&#xff1a;mysql2.6.20 mysql日志&#xff1a; 錯誤日志 一般查詢日志 慢查詢日志 二進制日志 只記錄DDL&#xff0c;DML等引起數據庫改變的操作都會記錄下來 復制&am…

Sort

<?xml version"1.0" encoding"utf-8"?> SortSort 1 Sort Select sort is the simplest sorting alogrithms. 1.1 IDEA 1.find the smallest element in the rest of array 2.exchange the element with with the i th entry. 3.repeat step1 and s…