<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

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    相冊

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲视频在线精品| 免费二级毛片免费完整视频| 亚洲gv猛男gv无码男同短文| kk4kk免费视频毛片| 亚洲人成网站色在线入口| 国产精品无码亚洲一区二区三区 | 黄色免费在线网址| 国产小视频在线免费| 狼人大香伊蕉国产WWW亚洲| 又爽又高潮的BB视频免费看| 美女被免费网站在线视频免费 | 日本免费人成黄页网观看视频| 亚洲无吗在线视频| 黄网址在线永久免费观看 | 91制片厂制作传媒免费版樱花| 亚洲黄色在线观看| 最新免费jlzzjlzz在线播放| 亚洲变态另类一区二区三区| 国产又大又黑又粗免费视频 | 日韩电影免费在线观看网址| 亚洲中文字幕不卡无码| 99在线观看精品免费99| 亚洲色图激情文学| 亚洲成片观看四虎永久| 三年片免费高清版 | 久久被窝电影亚洲爽爽爽| 99ee6热久久免费精品6| 亚洲视频在线观看2018| 亚洲国产中文v高清在线观看| 日本在线免费观看| 四虎亚洲精品高清在线观看| 大胆亚洲人体视频| 日韩电影免费在线观看网站| 亚洲一级高清在线中文字幕| 亚洲国产精品尤物YW在线观看| 日本人成在线视频免费播放| 亚洲国产欧美日韩精品一区二区三区| 亚洲综合色成在线播放| 131美女爱做免费毛片| 国产精品亚洲综合天堂夜夜| 亚洲成AV人片在|