最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kryo框架使用方法代碼示例

 更新時間:2017年10月09日 10:03:14   作者:OK_boom  
這篇文章主要介紹了Kryo框架的相關(guān)內(nèi)容,文中向大家分享了Kryo框架使用方法代碼示例,小編覺得挺不錯的,希望能給大家一個參考。

Kryo框架的source已移至https://github.com/EsotericSoftware/kryo ,進(jìn)入此頁面,然后點(diǎn)擊右邊的Download Zip按鈕,就能下載到最新版本的Kryo框架。

     導(dǎo)入Eclipse時,記得JDK/JRE選用 JDK1.7版本,因為Kryo會引用到unsafe()對象的一些方法JDK1.7才兼容。。

     先來一個String類的序列化跟還原,是不是很簡單?

</pre><pre name="code" class="java"> private static void testString () { 
  Kryo kryo=new Kryo(); 
  String w_str1="簡體中文,繁體中文,English"; 
  //把w_str1對象序列化 
  Output output=new Output(1024); 
  kryo.writeObject(output, w_str1); 
  output.flush(); 
  output.close(); 
  byte[] w_ret= output.toBytes(); //獲得byte數(shù)據(jù),這些數(shù)據(jù)可用作儲存、網(wǎng)絡(luò)傳輸?shù)?.. 
  //還原 
  Input input=new Input(w_ret); 
  input.close(); 
  String w_str2=kryo.readObject(input, String.class); 
  System.out.println(w_str2); 
 } 

   再來一個HashMap類的序列化跟還原,因為Kryo自帶了很多java基本類的Serializer,所以盡管不知道Serializer,Kryo也自動匹配:

public static void testHashMap() throws NoSuchAlgorithmException{ 
  Kryo kryo=new Kryo();    
  HashMap h=new HashMap(); 
  h.put("k1", "v1"); 
  h.put("k2", "v2"); 
  Output output=new Output(1, 1024);  
  kryo.writeObject(output, h); 
  output.close(); 
  byte[] data=output.toBytes(); 
  Input i=new Input(data); 
  i.close(); 
  HashMap h2= (HashMap)kryo.readObject(i, HashMap.class); 
  System.out.println(h2.get("k2"));   
 } 

   那么,我自定義的Bean又應(yīng)該如何處理呢?下面給出例子:
1、先定義Bean TestBean:

public static class TestBean implements Serializable{ 
  private int[] intArray; 
  private HashMap<String,String> hashMapVal; 
  private String strVal; 
  public int[] getIntArray () { 
   return intArray; 
  } 
  public void setIntArray (int[] intArray) { 
   this.intArray = intArray; 
  } 
  public HashMap<String, String> getHashMapVal () { 
   return hashMapVal; 
  } 
  public void setHashMapVal (HashMap<String, String> hashMapVal) { 
   this.hashMapVal = hashMapVal; 
  } 
  public String getStrVal () { 
   return strVal; 
  } 
  public void setStrVal (String strVal) { 
   this.strVal = strVal; 
  } 
 } 

    2、因為這是自定義的Bean,Kryo在序列化前先要對TestBean進(jìn)行注冊:kryo.register(TestBean.class,new BeanSerializer(kryo, TestBean.class)); ,具體例子如下:

public static void testBean() throws NoSuchAlgorithmException{ 
  Kryo kryo=new Kryo(); 
  kryo.register(TestBean.class,new BeanSerializer(kryo, TestBean.class)); 
  TestBean tb1=new TestBean(); 
  tb1.setStrVal("test1"); 
  tb1.setHashMapVal(new HashMap<String,String>()); 
  tb1.getHashMapVal().put("k1", "v1"); 
  tb1.getHashMapVal().put("k2", "v2"); 
  int[] ints=new int[3]; 
  ints[0]=1; 
  ints[1]=2; 
  ints[2]=3; 
  tb1.setIntArray(ints); 
  Output output=new Output(1, 1024);  
  kryo.writeObject(output, tb1); 
  output.close(); 
  byte[] data=output.toBytes(); 

   
Input i=new Input(data); 
 i.close(); 
 TestBean tb2= (TestBean)kryo.readObject(i, TestBean.class); 
 System.out.println(tb2.strVal); 
 System.out.println(tb2.hashMapVal.get("k1")); 
 System.out.println(tb2.intArray[2]);     
} 

總結(jié)

是不是非常簡單?關(guān)于Kryo框架使用方法代碼示例的介紹就到這里,希望對大家有所幫助。有什么問題可以隨時留言,小編會及時回復(fù)大家的。

相關(guān)文章

  • 當(dāng)事務(wù)Transactional遇見異步線程出現(xiàn)的坑及解決

    當(dāng)事務(wù)Transactional遇見異步線程出現(xiàn)的坑及解決

    這篇文章主要介紹了當(dāng)事務(wù)Transactional遇見異步線程出現(xiàn)的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java項目命名規(guī)范參考

    Java項目命名規(guī)范參考

    在實際項目開發(fā)中,命名規(guī)范的遵守可以提高代碼的可讀性和可維護(hù)性,本文就來介紹一下Java項目命名規(guī)范參考,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • IDEA開啟Run Dashboard的幾種方式

    IDEA開啟Run Dashboard的幾種方式

    Run Dashboard 是 IntelliJ IDEA 中的一個工具窗口,用于管理和監(jiān)視項目中正在運(yùn)行的應(yīng)用程序和配置,它提供了一種集中管理運(yùn)行和調(diào)試過程的方式,本文給大家介紹了IDEA開啟Run Dashboard的幾種方式,需要的朋友可以參考下
    2024-03-03
  • Spring?Cloud?Gateway服務(wù)網(wǎng)關(guān)限流問題及解決

    Spring?Cloud?Gateway服務(wù)網(wǎng)關(guān)限流問題及解決

    這篇文章主要介紹了Spring?Cloud?Gateway服務(wù)網(wǎng)關(guān)限流問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Java中for、foreach、stream區(qū)別和性能比較詳解

    Java中for、foreach、stream區(qū)別和性能比較詳解

    for、foreach、stream都可以循環(huán)處理數(shù)據(jù),如果單純當(dāng)循環(huán)使用,for、foreach、stream哪個性能更好,這篇文章主要給大家介紹了關(guān)于Java中for、foreach、stream區(qū)別和性能的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • IDEA 自動生成 JPA 實體類的圖文教程

    IDEA 自動生成 JPA 實體類的圖文教程

    這篇文章主要介紹了IDEA 自動生成 JPA 實體類的圖文教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java日期工具類DateUtils實例詳解

    Java日期工具類DateUtils實例詳解

    這篇文章主要為大家詳細(xì)介紹了Java日期工具類DateUtils實例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • java實現(xiàn)訂餐系統(tǒng)

    java實現(xiàn)訂餐系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)訂餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 利用spring aop實現(xiàn)動態(tài)代理

    利用spring aop實現(xiàn)動態(tài)代理

    這篇文章主要為大家詳細(xì)介紹了利用spring aop實現(xiàn)動態(tài)代理的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • IDEA中使用Typora編輯md文件的方法

    IDEA中使用Typora編輯md文件的方法

    這篇文章主要介紹了IDEA中使用Typora編輯md文件的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09

最新評論

健康| 大连市| 崇义县| 来凤县| 海晏县| 屯门区| 涿州市| 区。| 广德县| 金坛市| 进贤县| 扎鲁特旗| 浑源县| 西城区| 柳林县| 长白| 蓬溪县| 峨眉山市| 巫山县| 瑞昌市| 东乌珠穆沁旗| 普洱| 芒康县| 云和县| 刚察县| 金华市| 镇原县| 新余市| 康马县| 上饶市| 波密县| 蛟河市| 石渠县| 临城县| 汝南县| 宝清县| 越西县| 浮山县| 永城市| 中西区| 铜鼓县|