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

黄冈市住房和城乡建设委员会网站seo快速排名软件平台

黄冈市住房和城乡建设委员会网站,seo快速排名软件平台,wordpress不要分页,注册网站的费用序列化是指将对象的状态信息转换为可以存储或传输的形式的过程。 在Java中创建的对象,只要没有被回收就可以被复用,但是,创建的这些对象都是存在于JVM的堆内存中,JVM处于运行状态时候,这些对象可以复用, 但…

e55b9bd2aea04867a9bda0e08eec1c20.gif序列化是指将对象的状态信息转换为可以存储或传输的形式的过程。

 

 

在Java中创建的对象,只要没有被回收就可以被复用,但是,创建的这些对象都是存在于JVM的堆内存中,JVM处于运行状态时候,这些对象可以复用,

 

但是一旦JVM停止,这些对象的状态也就丢失了。

 

在实际生活中,需要将对象持久化,需要的时候再重新读取出来,通过对象序列化,可以将对象的状态保存为字节数组,需要的时候再将字节数组反序列化为对象。

 

对象序列化可以很容易的在JVM中的活动对象和字节数组(流)之间转换,广泛用于RMI(远程方法调用)以及网络传输中。

 

 

 

特别注意:

 

a.静态成员变量属于类不属于对象,所以不会参与序列化(对象序列化保存的是对象的“状态”,也就是它的成员变量,因此序列化不会关注静态变量)

 

b.用transient关键字标记的成员变量不参与序列化(在被反序列化后,transient 变量的值被设为初始值,如 int 型的是 0,对象型的是 null)

 

 

 

(1).Serializable

 

1 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>

2 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

复制代码

 1 import java.io.Serializable;

 2 

 3 public class StudentSerializable implements Serializable {

 4     

 5 //指定serialVersionUID,

 6 //因为原则上序列化后的数据中的serialVersionUID只有和当前类的serialVersionUID相同时才能被正常的反序列化

 7 //最好自己指定UID或者系统生成,因为如果增加或者删除了某些成员变量,那么系统就会重新生成hash值然后赋给UID,导致反序列化时候crash

 8 private static final long serialVersionUID = 10000000000000000L; 

 9     

10 private int Uid;

11 private String Name ;

12     

13 public int getUid() {

14 return Uid;

15 }

16 public void setUid(int uid) {

17 Uid = uid;

18 }

19 public String getName() {

20 return Name;

21 }

22 public void setName(String name) {

23 Name = name;

24 }

25 @Override

26 public String toString() {

27 return "StudentSerializable [Uid=" + Uid + ", Name=" + Name + "]";

28 }

29 

30 }

复制代码

复制代码

 1 private void DealSerializable() throws IOException {

 2 // Initializes The Object

 3 StudentSerializable stu = new StudentSerializable();

 4 stu.setUid(9027);

 5 stu.setName("fish");        

 6         

 7 File extDir = Environment.getExternalStorageDirectory();

 8 String filename = "tempFile.txt";

 9 File fullFilename = new File(extDir, filename);

10          

11 try {

12 fullFilename.createNewFile();

13 fullFilename.setWritable(Boolean.TRUE);

14 fullFilename.setReadable(Boolean.TRUE);

15              

16 } catch (IOException e) {

17 // TODO Auto-generated catch block

18 e.printStackTrace();

19 }

20 

21 // Write Obj to File

22 ObjectOutputStream oos = null;

23 try {

24 oos = new ObjectOutputStream(new FileOutputStream(fullFilename.getAbsoluteFile()));

25 oos.writeObject(stu);

26 } catch (IOException e) {

27 e.printStackTrace();

28 } finally {

29 //oos.close();

30 }

31 

32 // Read Obj from File

33 //File file = new File("tempFile.txt");

34 ObjectInputStream ois = null;

35 try {

36 ois = new ObjectInputStream(new FileInputStream(fullFilename.getAbsoluteFile()));

37 StudentSerializable newStu = (StudentSerializable) ois.readObject();

38 System.out.println(newStu);

39 } catch (IOException e) {

40 e.printStackTrace();

41 } catch (ClassNotFoundException e) {

42 e.printStackTrace();

43 } finally {

44 //ois.close();

45 }

46 }

复制代码

 

 

 在使用时,通常是和ObjectOutputStream 以及 ObjectInputStream 配套一起使用,准确的说是和ObjectOutputStream 里的writeObject () 和 ObjectInputStream 里的 readObject () 一起使用。writeObject()方法是最重要的方法,用于对象序列化。如果对象包含其他对象的引用,则writeObject()方法递归序列化这些对象。

 

 

 

(2).Parcelable

 

复制代码

 1 import android.os.Parcel;

 2 import android.os.Parcelable;

 3 

 4 public class StudentParcelable implements Parcelable{

 5     

 6 private int Uid;

 7 private String Name ;

 8     

 9 private Book book ;

10     

11 public StudentParcelable(int uid, String name) {

12 super();

13 Uid = uid;

14 Name = name;

15 }

16     

17 public int getUid() {

18 return Uid;

19 }

20 public void setUid(int uid) {

21 Uid = uid;

22 }

23 public String getName() {

24 return Name;

25 }

26 public void setName(String name) {

27 Name = name;

28 }

29 

30 

31 //功能:返回当前对象的内容描述,如果含有文件描述符,返回1

32 //即CONTENTS_FILE_DESCRIPTOR

33 //几乎所有情况都会返回0

34 @Override

35 public int describeContents() {

36 // TODO Auto-generated method stub

37 return 0;

38 }

39 

40 /**

41 * 序列化功能由writeToParcel完成,最终通过Parcel的一系列Write方法完成

42 */

43 //功能:将当前对象写入序列化结构中,其中flags标识有两种值,0或1

44 //为1时标识当前对象需要作为返回值返回,不能立刻释放资源,即PARCELABLE_WRITE_RETURN_VALUE

45 //不过几乎所有情况都为0

46 @Override

47 public void writeToParcel(Parcel dest, int flags) {

48 // TODO Auto-generated method stub

49 dest.writeInt(Uid);

50 dest.writeString(Name);

51 dest.writeParcelable(book, 0);

52 }

53     

54 /**

55 * 反序列化由CREATOR来完成,其内部标明了如何创建序列化对象和数组

56 * 并通过Parcel的一系列read方法来完成反序列化

57 */

58 public StudentParcelable(Parcel source){

59 Uid = source.readInt();

60 Name

 

http://www.wangmingla.cn/news/88639.html

相关文章:

  • 安徽住房和城乡建设厅新网站国内的搜索引擎有哪些
  • wordpress 资源站模板竞价排名深度解析
  • 政务公开 加强门户网站建设b站推广引流最佳方法
  • 宽城区网站建设新网站seo
  • 做导购类网站百度框架户一级代理商
  • 2023广州这俩天有疫情吗seo优化的内容有哪些
  • 怎样做投资网站官网seo优化找哪家做
  • 邢台网站建设基本流程seo免费课程视频
  • 网站编辑的栏目怎么做搜索引擎优化的核心及内容
  • 做仪表宣传哪个网站好正在播网球比赛直播
  • 上海市建设委员会的网站查询系统谈谈你对互联网营销的认识
  • 杭州响应式网站爱站网seo查询
  • wordpress建站空间推荐seo交流群
  • 找事做网站怎么弄网站策划是做什么的
  • 东莞专业网站建站设计seo外链工具软件
  • 大连网站建设怎么做建立一个网站需要多少钱?
  • 旅行社手机网站建设成百度宣传广告要多少钱
  • 郭生b如何优化网站优化百度seo
  • 搞笑资讯网站源码怎么免费创建个人网站
  • 纪委纪检 网站建设 讲话搜狗推广登录入口
  • 安徽专业做网站的公司国际购物网站平台有哪些
  • 企业单位网站怎么做色盲悖论
  • 访问网站获取qq新媒体推广渠道有哪些
  • 广州黄埔区开发区建设局网站网络营销是学什么的
  • 福州网站建设发布网站seo哪里做的好
  • 潮州网站搭建找谁灯塔网站seo
  • 网站建设和管理是教什么科目成都百度seo推广
  • 济南住宅与房地产信息网官方网站太原百度网站快速优化
  • 快速网站建设价格抖音seo排名优化公司
  • 网站服务器托管百度收录网站提交入口