CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

请问大家庭 java.io.Serializable 的作用是什么?举个例子,散分

楼主taile()2005-05-07 19:02:53 在 Java / J2SE / 基础类 提问

请问大家庭   java.io.Serializable   的作用是什么?举个例子,散分 问题点数:30、回复次数:5Top

1 楼kaymo( 。。。 )回复于 2005-05-07 19:09:20 得分 0

Serializable用在两个方面:  
  1。网络传输  
  2。数据库持久  
   
  比如你的某个object需要持久到数据库中,就得实现这个接口。Top

2 楼asert()回复于 2005-05-07 19:14:11 得分 0

1.网络传输  
  2.数据库持久  
  3.把对象保存为文件形式,以便以后还原Top

3 楼taile()回复于 2005-05-07 19:16:03 得分 0

能说具体点吗?大哥门,没回答到我怎么散分啊?Top

4 楼ycybom()回复于 2005-05-07 19:16:53 得分 30

正好在写着,呵呵,给个例子啊  
   
  import   java.io.ObjectInputStream;  
  import   java.io.ObjectOutputStream;  
  import   java.io.Serializable;  
   
  /**  
    *   @author   Yan   Chenyang  
    *  
    *   TODO   要更改此生成的类型注释的模板,请转至  
    *   窗口   -   首选项   -   Java   -   代码样式   -   代码模板  
    */  
  public   class     JFunction   implements   Serializable{  
   
  private   double[][]   bounds;  
  private   int   vnum;  
  private   double   result;  
  private   String   funcname;  
   
  public   JFunction(){  
  super();  
  this.bounds=null;  
  this.vnum=0;  
  this.result=0.0;  
  this.funcname=null;  
  }  
   
  public   JFunction(double[][]   bounds){  
  super();  
  this.bounds=bounds;  
  this.vnum=bounds[0].length;  
  this.result=0.0;  
  this.funcname="Function   1";  
  }  
   
  public   double   Func(double[]   var){  
   
  result=0.0;  
  for(int   i=0;i<var.length;i++)  
  result+=var[i];  
  return   result;  
  }  
   
   
  public   static   JFunction   deserialize(ObjectInputStream   oin)    
  throws   Exception{  
   
  JFunction   f=(JFunction)oin.readObject();  
                  return   f;  
   
  }  
   
  public   void   serialize(ObjectOutputStream   oout)    
  throws   Exception{  
  oout.writeObject(this);  
  }  
   
  public   String   toString(){  
  return   funcname   ;  
   
  }  
  /**  
    *   @return   返回   funcname。  
    */  
  public   String   getFuncname()   {  
  return   funcname;  
  }  
  /**  
    *   @param   funcname   要设置的   funcname。  
    */  
  public   void   setFuncname(String   funcname)   {  
  this.funcname   =   funcname;  
  }  
  }  
   
  public   class   JFunctionTest0   {  
   
  public   static   void   main(String[]   args){  
   
  double[][]   bounds={{-2.048,-2.048},{2.048,2.048}};  
  JFunction   function=new   JFunction(bounds);  
   
  Interpreter   interpreter=new   Interpreter();  
   
  try   {  
   
  double[]   x={2.15,1.00};  
  interpreter.set("var",x);  
  interpreter.source("c:/x.bsh");  
  System.out.println(interpreter.get("ret"));  
   
  }   catch   (EvalError   e)   {  
  //   TODO   自动生成   catch   块  
  e.printStackTrace();  
  }   catch   (FileNotFoundException   e)   {  
  //   TODO   自动生成   catch   块  
  e.printStackTrace();  
  }   catch   (IOException   e)   {  
  //   TODO   自动生成   catch   块  
  e.printStackTrace();  
  }  
   
   
  FileInputStream   in=null;  
                  FileOutputStream   out=null;  
                  ObjectInputStream   oin=null;  
                  ObjectOutputStream   oout=null;  
                   
                  try{  
                  out   =   new   FileOutputStream("function1.func");  
                  oout   =   new   ObjectOutputStream(out);  
                  function.serialize(oout);//序列化  
                  oout.close();  
                  oout=null;  
   
                  in   =   new   FileInputStream("function1.func");  
                  oin   =   new   ObjectInputStream(in);  
                  JFunction   tfunction   =JFunction.deserialize(oin);//反序列化  
                   
                  double[]   var={2.0,5.0};  
                   
    //               System.out.println(tfunction.Func(var));  
    //               System.out.println(tfunction);//打印结果  
    //                
                   
                  }catch(Exception   ex){  
                  ex.printStackTrace();  
                  }finally{  
                  try   {  
                                  if   (in   !=   null)   {  
                                          in.close();  
                                  }  
                                  if   (oin   !=   null)   {  
                                          oin.close();  
                                  }  
                                  if   (out   !=   null)   {  
                                          out.close();  
                                  }  
                                  if   (oout   !=   null)   {  
   
                                          oout.close();  
                                  }  
                          }   catch   (IOException   ex1)   {  
                                  ex1.printStackTrace();  
                          }  
                  }                
  }  
  }Top

5 楼ycybom()回复于 2005-05-07 19:21:14 得分 0

封装了一个函数类,implemnets了Serializable接口,在JFunctionTest0类中进行了序列化和发序列化,把这个类写入文件,又从文件中恢复Top

相关问题

  • 今天第一天加入Java的大家庭,问几个问题,顺便散分!
  • java IO问题
  • java io方面
  • java IO 问题
  • java文件IO
  • 大家好,今天加入这个大家庭,特开贴送分
  • 关于datagrid的一个问题?相信大家庭也碰到过!
  • 请教java io流问题
  • JAVA基础问题(IO)?
  • Serializable

关键词

  • 数据库
  • serializable
  • jfunction
  • 例子
  • bounds
  • funcname
  • vnum
  • io
  • double
  • result

得分解答快速导航

  • 帖主:taile
  • ycybom

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo