<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    West Farm
    吾本布衣,生于川北,躬耕于代碼的田地上。
    posts - 16,  comments - 15,  trackbacks - 0
    有的時候應用程序會hold一個對象實例,隨著時間的推移,該對象所含的數據可能發生變化(比如調用setter方法改變一個屬性的值)。
    那么如何明確相比于一個特定的時刻,某個對象實例中的數據發生了變化呢?

    方法肯定不止一種,我的方法是:
    public static String hashOf(Serializable object) throws IOException, NoSuchAlgorithmException {
            ByteArrayOutputStream baos 
    = new ByteArrayOutputStream();
            ObjectOutputStream oo 
    = new ObjectOutputStream(baos);
            oo.writeObject(object);
            oo.flush();
            
            MessageDigest messageDigest 
    = MessageDigest.getInstance("MD5");
            
    byte[] data = baos.toByteArray();
            
            oo.close();
            baos.close();

            messageDigest.update(data, 
    0, data.length);
            BigInteger hash 
    = new BigInteger(1, messageDigest.digest());
            
    return String.format("%1$032X", hash);
    }

    說白了就是把一個對象實例看作byte數組,然后對這個byte數組計算MD5,如果MD5值一樣就表示所含數據一致。
    MD5算法不是完美的,但是在實際應用中已經足夠的,你也可以使用CRC32。

    歡迎指正。
    posted on 2011-10-11 16:51 West Farmer 閱讀(315) 評論(0)  編輯  收藏 所屬分類: Java

    <2011年10月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    相冊

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲成a∨人片在无码2023| 无码av免费一区二区三区试看| 自拍偷自拍亚洲精品第1页 | 水蜜桃视频在线观看免费播放高清 | 在线观看成人免费| 亚洲午夜在线播放| 成人黄页网站免费观看大全| 亚洲成A人片在线播放器| 久久久www成人免费毛片| 亚洲综合精品成人| 国产色爽女小说免费看| 黄色免费网址在线观看| 亚洲国产aⅴ综合网| 国产伦精品一区二区免费| 亚洲精品白浆高清久久久久久| 无码精品人妻一区二区三区免费看| 亚洲精品无码不卡| 成人免费视频77777| 亚洲aⅴ天堂av天堂无码麻豆| 亚洲va中文字幕无码| 中文字幕免费视频精品一| 亚洲综合婷婷久久| 免费看韩国黄a片在线观看| 亚洲国产午夜精品理论片在线播放| 免费又黄又硬又爽大片| 在线免费观看污网站| 国产精品亚洲精品日韩动图| 久久精品国产精品亚洲艾草网美妙| 天堂在线免费观看| 亚洲精品国产第1页| 国产精品色午夜视频免费看| 久久性生大片免费观看性| 亚洲视频一区网站| 日本19禁啪啪无遮挡免费动图| 久久99久久成人免费播放| 亚洲性色成人av天堂| 国产成人亚洲精品影院| 特级毛片A级毛片免费播放| 亚洲VA成无码人在线观看天堂| 久久精品女人天堂AV免费观看|