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

html购物网站源代码网上长期挣钱的方法

html购物网站源代码,网上长期挣钱的方法,建站排行榜,2022年即将上市的手机Java 序列化Serializable详解#xff08;附详细例子#xff09; 1、什么是序列化和反序列化Serialization#xff08;序列化#xff09;是一种将对象以一连串的字节描述的过程#xff1b;反序列化deserialization是一种将这些字节重建成一个对象的过程。 2、什么情况下需要… Java 序列化Serializable详解附详细例子 1、什么是序列化和反序列化Serialization序列化是一种将对象以一连串的字节描述的过程反序列化deserialization是一种将这些字节重建成一个对象的过程。   2、什么情况下需要序列化 a当你想把的内存中的对象保存到一个文件中或者数据库中时候b当你想用套接字在网络上传送对象的时候c当你想通过RMI传输对象的时候 3、如何实现序列化 将需要序列化的类实现Serializable接口就可以了Serializable接口中没有任何方法可以理解为一个标记即表明这个类可以序列化。   4、序列化和反序列化例子 如果我们想要序列化一个对象首先要创建某些OutputStream(如FileOutputStream、ByteArrayOutputStream等)然后将这些OutputStream封装在一个ObjectOutputStream中。这时候只需要调用writeObject()方法就可以将对象序列化并将其发送给OutputStream记住对象的序列化是基于字节的不能使用Reader和Writer等基于字符的层次结构。而反序列的过程即将一个序列还原成为一个对象需要将一个InputStream(如FileInputstream、ByteArrayInputStream等)封装在ObjectInputStream内然后调用readObject()即可。   package com.sheepmu; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable;public class MyTest implements Serializable {private static final long serialVersionUID 1L;private String nameSheepMu;private int age24;public static void main(String[] args){//以下代码实现序列化try {ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(my.out));//输出流保存的文件名为 my.out ObjectOutputStream能把Object输出成Byte流MyTest myTestnew MyTest();oos.writeObject(myTest); oos.flush(); //缓冲流 oos.close(); //关闭流} catch (FileNotFoundException e) { e.printStackTrace();} catch (IOException e) {e.printStackTrace();} fan();//调用下面的 反序列化 代码}public static void fan()//反序列的过程{ ObjectInputStream oin null;//局部变量必须要初始化try{oin new ObjectInputStream(new FileInputStream(my.out));} catch (FileNotFoundException e1){ e1.printStackTrace();} catch (IOException e1){e1.printStackTrace();} MyTest mts null;try {mts (MyTest ) oin.readObject();//由Object对象向下转型为MyTest对象} catch (ClassNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} System.out.println(namemts.name); System.out.println(agemts.age); } } 会在此项目的工作空间生成一个 my.out文件。序列化后的内容稍后补齐先看反序列化后输出如下   nameSheepMuage24 5、序列化ID 序列化 ID 在 Eclipse 下提供了两种生成策略一个是固定的 1L一个是随机生成一个不重复的 long 类型数据实际上是使用 JDK 工具生成在这里有一个建议如果没有特殊需求就是用默认的 1L 就可以这样可以确保代码一致时反序列化成功。这也可能是造成序列化和反序列化失败的原因因为不同的序列化id之间不能进行序列化和反序列化。   6.序列化前和序列化后的对象的关系 是 还是equal or 是浅复制还是深复制  答案深复制反序列化还原后的对象地址与原来的的地址不同 序列化前后对象的地址不同了但是内容是一样的而且对象中包含的引用也相同。换句话说通过序列化操作,我们可以实现对任何可Serializable对象的”深度复制deep copy——这意味着我们复制的是整个对象网而不仅仅是基本对象及其引用。对于同一流的对象他们的地址是相同说明他们是同一个对象但是与其他流的对象地址却不相同。也就说只要将对象序列化到单一流中就可以恢复出与我们写出时一样的对象网而且只要在同一流中对象都是同一个。   7.静态变量能否序列化 若把上面的代码中的 age变量前加上 static ,输出任然是 nameSheepMuage24 但是看下面的例子   package com.sheepmu; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class MyTest implements Serializable {private static final long serialVersionUID 1L;private String nameSheepMu;private static int age24;public static void main(String[] args){//以下代码实现序列化try {ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(my.out));//输出流保存的文件名为 my.out ObjectOutputStream能把Object输出成Byte流MyTest myTestnew MyTest();oos.writeObject(myTest); oos.flush(); //缓冲流 oos.close(); //关闭流} catch (FileNotFoundException e) { e.printStackTrace();} catch (IOException e) {e.printStackTrace();} fan();//调用下面的 反序列化 代码}public static void fan(){new MyTest().nameSheepMu_1;//!!!!!!!!!!!!!!!!重点看这两行 更改部分age1;//!!!!!!!!!!!!!!!!!!!重点看这两行 更改部分ObjectInputStream oin null;//局部变量必须要初始化try{oin new ObjectInputStream(new FileInputStream(my.out));} catch (FileNotFoundException e1){ e1.printStackTrace();} catch (IOException e1){e1.printStackTrace();} MyTest mts null;try {mts (MyTest ) oin.readObject();//由Object对象向下转型为MyTest对象} catch (ClassNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} System.out.println(namemts.name); System.out.println(agemts.age); } }输出结果为   nameSheepMuage1为何把最上面代码的age变量添上static 后还是反序列化出了24呢而新的从新对变量赋值的代码不是static的得到了序列化本身的值而static的则得到的是从新附的值。原因 序列化会忽略静态变量即序列化不保存静态变量的状态。静态成员属于类级别的所以不能序列化。即 序列化的是对象的状态不是类的状态。这里的不能序列化的意思是序列化信息中不包含这个静态成员域。最上面添加了static后之所以还是输出24是因为该值是JVM加载该类时分配的值。注transient后的变量也不能序列化但是情况稍复杂稍后开篇说。 8、总结: a当一个父类实现序列化子类自动实现序列化不需要显式实现Serializable接口 b当一个对象的实例变量引用其他对象序列化该对象时也把引用对象进行序列化 c static,transient后的变量不能被序列化 转载于:https://www.cnblogs.com/cx6872/p/6049839.html
http://www.pierceye.com/news/774915/

相关文章:

  • 魔兽世界做宏网站家具设计与工程就业前景
  • 网站案例介绍平面设计网址推荐
  • 网站上的验证码怎么做简书 导入 wordpress
  • 想把公司的外部网站替换金戈枸橼酸西地那非片
  • 个人可以做社区网站淄博网站文章优化
  • 晋中建设集团网站windows图标wordpress
  • 如何创建商业网站为网站网站做代理被判缓刑
  • 个人备案做运营网站wordpress公众号源码
  • 营销网站服务器郑州金水区
  • 陕煤化建设集团铜川分公司网站大冶建设局网站
  • 网站如何制作django企业网站开发实例
  • 免费网站建设软件大全平面设计与网页设计
  • 建设网站 怀疑对方传销 网站制作 缓刑网站ip如何做跳转
  • 公司网站建设要求书网页怎么弄到桌面快捷方式
  • 做网站 公司 个体学校网站建设板块分析
  • 如何让百度更新网站收录wordpress图片处理类
  • 镜像网站能否做google排名企业做网站需要注意什么
  • 网站设计公司名称dz网站恢复数据库
  • 展示网站和营销网站的区别舆情分析师
  • 做网站用那一种语言最好网站推广指的是什么
  • 有哪些网站可以学做糕点的专业做网站建设公司怎么样
  • 广州网站排名怎么优化androidapp开发教程
  • 永顺网站建设网站建设免费建站
  • 建立一个网站需要多少钱?jquery网站后台模板
  • PHP网站开发工程师招聘营销型网站主机
  • 百度招聘 网站开发书画网站免费源码
  • 4s店网站建设贺贵江seo教程
  • 做网站的公司一般怎么培训销售wordpress引用php
  • 自己怎样做网站平台网页设计做网站首页
  • 费县做网站点石家装