当前位置: 首页 > news >正文

网站的底部设计wordpress git 7.5

网站的底部设计,wordpress git 7.5,怎样用自己的pid做搜索网站,沈阳模板 网站建设一 简介 对象序列化就是把一个对象变成二进制的数据流的一种方法#xff0c;通过对象序列化可以方便地实现对象的传输和存储。 把对象转换为字节序列的过程称为对象的序列化 把字节序列恢复为对象的过程称为对象的反序列化 对象的序列化主要有两种用途#xff1a; 1#xff… 一 简介 对象序列化就是把一个对象变成二进制的数据流的一种方法通过对象序列化可以方便地实现对象的传输和存储。 把对象转换为字节序列的过程称为对象的序列化 把字节序列恢复为对象的过程称为对象的反序列化 对象的序列化主要有两种用途 1 把对象的字节序列永久地保存到硬盘上通常存放在一个文件中 2 在网络上传送对象的字节序列。 对象序列化包括如下步骤1 创建一个对象输出流它可以包装一个其他类型的目标输出流如文件输出流2 通过对象输出流的writeObject()方法写对象。 对象反序列化包括如下步骤1 创建一个对象输入流它可以包装一个其他类型的源输入流如文件输入流2 通过对象输入流的readObject()方法读取对象。 在很多应用中需要对某些对象进行序列化让它们离开内存空间入住物理硬盘以便长期保存。比如最常见的是Web服务器中的Session对象当有 10万用户并发访问就有可能出现10万个Session对象内存可能吃不消于是Web容器就会把一些seesion先序列化到硬盘中等要用了再把保存在硬盘中的对象还原到内存中。 当两个进程在进行远程通信时彼此可以发送各种类型的数据。无论是何种类型的数据都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列才能在网络上传送接收方则需要把字节序列再恢复为Java对象。 二 Java中的序列化API 如果一个类的对象想被序列化那么该对象所在的类必须实现java.io.Serializable接口此接口的定义如下 public interface Serializable{} 可以发现此接口并没有定义任何的方法只是一个标识接口表示一个类可以被序列化如 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package cn.zifangsky.serializable; import java.io.Serializable; public class Person implements Serializable {     private static final long serialVersionUID  2651243789670519969L;     private String name;     private int age;     public Person(String name, int age) {         this.name  name;         this.age  age;     }     public String toString() {         return Person [name  name  , age  age  ];     } } 就像上面这个Person类一样实现了序列化接口表明此类的对象可以经过二进制的数据流进行传输了。但是如果想要完成对象的输入和输出还需要借助对象输出流ObjectOutputStream和对象输入流ObjectInputStream java.io.ObjectOutputStream代表对象输出流它的writeObject(Object obj)方法可对参数指定的obj对象进行序列化把得到的字节序列写到一个目标输出流中java.io.ObjectInputStream代表对象输入流它的readObject()方法从一个源输入流中读取字节序列再把它们反序列化为一个对象并将其返回 只有实现了Serializable或Externalizable接口的类的对象才能被序列化。Externalizable接口继承自 Serializable接口实现Externalizable接口的类完全由自身来控制序列化的行为而仅实现Serializable接口的类可以 采用默认的序列化方式 。 三 使用Serializable接口实现的实例 首先定义了一个实现了Serializable接口WebSite的实体类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 package cn.zifangsky.serializable; import java.io.Serializable; public class WebSite implements Serializable {     private static final long serialVersionUID  1835573222135484360L;     private String siteName;     private String siteUrl;     private String webMaster;     public WebSite() {     }     public WebSite(String siteName, String siteUrl, String webMaster) {         this.siteName  siteName;         this.siteUrl  siteUrl;         this.webMaster  webMaster;     }     public String getSiteName() {         return siteName;     }     public void setSiteName(String siteName) {         this.siteName  siteName;     }     public String getSiteUrl() {         return siteUrl;     }     public void setSiteUrl(String siteUrl) {         this.siteUrl  siteUrl;     }     public String getWebMaster() {         return webMaster;     }     public void setWebMaster(String webMaster) {         this.webMaster  webMaster;     }     public String toString() {         return WebSite [siteName  siteName  , siteUrl  siteUrl  , webMaster  webMaster  ];     } } 然后进行序列化和反序列化测试 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 package cn.zifangsky.serializable; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class TestSerialize {     public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {         TestSerialize.serializeWebSite();         TestSerialize.deserializeWebSite();     }           /**      * 使用ObjectOutputStream 序列化WebSite      * throws IOException       * throws FileNotFoundException       *       * */     public static void serializeWebSite() throws FileNotFoundException, IOException{         WebSite webSite  new WebSite();         webSite.setSiteName(zifangsky的个人博客);         webSite.setSiteUrl(http://www.zifangsky.cn);         webSite.setWebMaster(zifangsky);                   //序列化         ObjectOutputStream objectOutputStream  new ObjectOutputStream(new FileOutputStream(new File(C:/Users/Administrator/Desktop/test.txt)));         objectOutputStream.writeObject(webSite);         objectOutputStream.flush();         objectOutputStream.close();     }           /**      * 使用ObjectInputStream 反序列化WebSite      * throws IOException       * throws FileNotFoundException       * throws ClassNotFoundException       *       * */     public static void deserializeWebSite() throws FileNotFoundException, IOException, ClassNotFoundException{         ObjectInputStream objectInputStream  new ObjectInputStream(new FileInputStream(new File(C:/Users/Administrator/Desktop/test.txt)));         //反序列化         WebSite webSite  (WebSite) objectInputStream.readObject();         objectInputStream.close();         System.out.println(webSite);     }       } 输出 1 WebSite [siteNamezifangsky的个人博客, siteUrlhttp://www.zifangsky.cn, webMasterzifangsky] 四 使用Externalizable接口实现的实例 被Serializable接口声明的类的对象的内容都将被序列化如果现在用户希望自己制定序列化的内容则可以让一个类实现Externalizable接口此接口的定义如下 public interface Externalizable extends java.io.Serializable {     void writeExternal(ObjectOutput out) throws IOException;     void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;} 其中这两个方法的作用是 iwriteExternal(ObjectOutput out) 在此方法中制定要保存的属性信息对象序列化时调用 iireadExternal(ObjectInput in)  在此方法中读取被保存的信息对象反序列化时调用 下面将以一个具体的实例来简单说明序列化和反序列化过程 1实现了Externalizable接口的实体类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 package cn.zifangsky.serializable; import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; public class ExternalizableDemo implements Externalizable{     private String name;     static {         System.out.println(调用静态代码块);     }     public ExternalizableDemo() {         System.out.println(调用无参构造方法);     }     public ExternalizableDemo(String name) {         this.name  name;         System.out.println(调用有参构造方法);     }     public String getName() {         return name;     }     public void setName(String name) {         this.name  name;     }     public String toString() {         return ExternalizableDemo [name  name  ];     }           /**      * ObjectOutputStream会调用writeExternal(ObjectOutput out))这个方法进行序列化      * */     public void writeExternal(ObjectOutput out) throws IOException {         out.writeObject(name);     }     /**      * ObjectInputStream会调用readExternal(ObjectInput in)这个方法进行反序列化      * */     public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {         name  (String) in.readObject();     } } 2然后进行序列化和反序列化测试 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package cn.zifangsky.serializable; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class TestExternalizable {     public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {         ExternalizableDemo demo  new ExternalizableDemo(hello);         // 序列化         ObjectOutputStream objectOutputStream  new ObjectOutputStream(                 new FileOutputStream(new File(C:/Users/Administrator/Desktop/test2.txt)));         objectOutputStream.writeObject(demo);         objectOutputStream.flush();         objectOutputStream.close();                   //反序列化         ObjectInputStream objectInputStream  new ObjectInputStream(new FileInputStream(new File(C:/Users/Administrator/Desktop/test2.txt)));         ExternalizableDemo demo2  (ExternalizableDemo) objectInputStream.readObject();         objectInputStream.close();         System.out.println(demo2);          } } 输出 1 2 3 4 调用静态代码块 调用有参构造方法 调用无参构造方法 ExternalizableDemo [namehello] 注 1使用Externalizable进行序列化时当读取对象时会调用被序列化类的无参构造器去创建一个新的对象然后再将被保存对象的字段的值分别填充到新对象中 2Externalizable接口与Serializable接口实现序列化的区别 区别SerializableExternalizable实现负责度实现简单Java对其有内建支持实现负责由开发人员自己完成执行效率所有对象由Java统一保存性能较低开发人员自己决定保存那些对象可能造成速度提升保存信息保存时占用空间大部分存储可能造成空间减小3一个对象被序列化后到底哪些内容被保存了下来是属性还是方法 答只有属性被序列化。因为每个对象都有相同的方法但是每个对象的属性却不一定相同因此对象保存的只有属性信息那么同样道理在进行序列化操作时也只有属性被序列化 五 transient关键字 当使用Serializable接口实现序列化操作时如果一个对象中的某个属性不希望被序列化那么就可以使用transient关键字进行声明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package cn.zifangsky.serializable; import java.io.Serializable; public class WebSite implements Serializable {     private static final long serialVersionUID  1835573222135484360L;     private String siteName;     private String siteUrl;     private transient String webMaster;     public WebSite(String siteName, String siteUrl, String webMaster) {         this.siteName  siteName;         this.siteUrl  siteUrl;         this.webMaster  webMaster;     }     public String toString() {         return WebSite [siteName  siteName  , siteUrl  siteUrl  , webMaster  webMaster  ];     } } 在上面这个类中不希望webMaster这个属性被序列化因此把它用transient关键字进行修饰接下来就是序列化与反序列化测试 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 package cn.zifangsky.serializable; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class TestSerialize {     public static void main(String[] args) throws FileNotFoundException,             IOException, ClassNotFoundException {         TestSerialize.serializeWebSite();         TestSerialize.deserializeWebSite();     }     /**      * 使用ObjectOutputStream 序列化WebSite      *       * throws IOException      * throws FileNotFoundException      *       * */     public static void serializeWebSite() throws FileNotFoundException,             IOException {         WebSite webSite  new WebSite(zifangsky的个人博客,http://www.zifangsky.cn,zifangsky);         // 序列化         ObjectOutputStream objectOutputStream  new ObjectOutputStream(                 new FileOutputStream(new File(                         C:/Users/Administrator/Desktop/test.txt)));         objectOutputStream.writeObject(webSite);         objectOutputStream.flush();         objectOutputStream.close();     }     /**      * 使用ObjectInputStream 反序列化WebSite      *       * throws IOException      * throws FileNotFoundException      * throws ClassNotFoundException      *       * */     public static void deserializeWebSite() throws FileNotFoundException,             IOException, ClassNotFoundException {         ObjectInputStream objectInputStream  new ObjectInputStream(                 new FileInputStream(new File(                         C:/Users/Administrator/Desktop/test.txt)));         // 反序列化         WebSite webSite  (WebSite) objectInputStream.readObject();         objectInputStream.close();         System.out.println(webSite);     } } 输出 1 WebSite [siteNamezifangsky的个人博客, siteUrlhttp://www.zifangsky.cn, webMasternull] 从上面的输出可以看出webMaster这个属性并没有被序列化 本文转自 pangfc 51CTO博客原文链接http://blog.51cto.com/983836259/1758247如需转载请自行联系原作者
http://www.huolong8.cn/news/207786/

相关文章:

  • 温州网站推广防城港网站设计公司
  • 如何做公司网站网页网站收录是什么意思?
  • 小白如何做网站建设公众号wordpress 视频不播放
  • 专业商城网站建设多少钱郑州网站建设公司排名
  • 学做快餐的视频网站哪里网页建设便宜
  • 公众号微信商城电子商务seo
  • 携程旅游网站建设的定位深圳城建局
  • 网站做管理后台需要知道什么南昌seo网站管理
  • 六安火车站网站网站备案成功后
  • 先做网站后付款网站如何调用手机淘宝做淘宝客
  • 自己做商城网站 哪种好建设网站公司 优帮云
  • 个体营业执照网站备案在线动画手机网站模板
  • 我要用新浪云做网站常用的网站建设技术有
  • wordpress多站点命名wordpress商品分类目录
  • 便宜点的网站空间需要做网站建设和推广
  • 网站源代码怎么下载用手机制作沙雕动画软件
  • 浙江国有建设用地出让网站常熟市做网站公司
  • 东莞网站推广定制公司建设局全称
  • 学网站开发怎么样wordpress 3.1 下载地址
  • 制作网站公司定价乐彩网站源码网站建设
  • 网站空间已过期wordpress合集
  • 自己设置免费网站设计平台网站免费进入窗口软件2023
  • 怎样建立自己手机网站网站专题页面用什么做
  • 途牛网站建设策划书静态网站建设摘要
  • 好品质自适应网站建设网络工程公司的业务
  • 网站备案表是什么山东服务好的seo
  • 如何优化网站速度温州室内设计公司排名
  • 网站设置成灰色进入 网站cms
  • 国外logo设计网站推荐网站兼容ie7
  • 重庆网站首页排名公司seo优化报告