什么是序列化:

1.序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。
序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传

输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求

有恢复数据的对象实例;

2.java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保

存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象

可能得到整个对象序列。

序列化的特点是什么:
如果某个类能够被序列化,其子类也可以被序列化。

(二)序列化前提:

(1)要序列化对象必须是可序列化的,即必须实现 Serializable 接口。

(2)要序列化对象的属性也都是可序列化的。

(3)要序列化对象引用的对象也必须是可序列化的,如:要序列化一个 HashMap 实例,需要把放入到HashMap中的对象也都序列化



(4)要序列化一个内部类,该内部类必须可序列化,并且外部类也必须可序列化。

(5)基本数据类型都是可以序列化的。

示例如下:用于将序列化对象存储到文件中,及从文件中对读取对象

public  class  CyclicBarrierTest {
     //初始化
     JedisPoolTest test =  new  JedisPoolTest();
     public  static  void  main(String[] args) {
          int  count =  1000 ;
          CyclicBarrier cyclicBarrier =  new  CyclicBarrier(count);
          ExecutorService executorService = Executors.newFixedThreadPool(count);
          for  ( int  i =  0 ; i < count; i++)
               executorService.execute( new  CyclicBarrierTest(). new  Task(cyclicBarrier));
 
          executorService.shutdown();
          while  (!executorService.isTerminated()) {
               try  {
                    Thread.sleep( 10 );
               }  catch  (InterruptedException e) {
                    e.printStackTrace();
               }
          }
     }
 
     public  class  Task  implements  Runnable {
          private  CyclicBarrier cyclicBarrier;
 
          public  Task(CyclicBarrier cyclicBarrier) {
               this .cyclicBarrier = cyclicBarrier;
          }
 
          @Override
          public  void  run() {
               try  {
                    // 等待所有任务准备就绪
                    cyclicBarrier.await();
                    // 测试内容
                 // 待测试的url
                     String host =  "http://172.25.2.14/seqno?" ;
                     String para =  "sysTemNo=ERP&seqName=WH-ZONE-ID&iVar=00" ;
                     System.out.println(host + para);
                     URL url =  new  URL(host);
                     HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                     // connection.setRequestMethod("POST");
                     // connection.setRequestProperty("Proxy-Connection", "Keep-Alive");
                     connection.setDoOutput( true );
                     connection.setDoInput( true );
                     PrintWriter out =  new  PrintWriter(connection.getOutputStream());
                     out.print(para);
                     out.flush();
                     out.close();
                     BufferedReader in =  new  BufferedReader( new  InputStreamReader(connection.getInputStream()));
                     String line =  "" ;
                     String result =  "" ;
                     while  ((line = in.readLine()) !=  null ) {
                         result += line;
                     }
                     System.out.println(result);
//                   System.out.println(test.getJedis().incr("seq"));
//                System.out.println(test.getShardedJedis().incr("seq"));
               }  catch  (Exception e) {
                    e.printStackTrace();
               }
          }
     }
}