您的位置:首页 > 编程语言 > Java开发

java的序列化

2016-07-15 16:19 330 查看
今天停下手里的工作,把一些java的知识点看了一下,发现其中还有一些细节自己没有注意到,这里给大家推荐一本读物<>,这本书很适合想提高自己水平的读者来读,如果有需要中文翻译版的可以联系我,1208874066@qq.com

好了进入今天的正题,java的垃圾回收机制的由来:很多时候我们创建了一个对象,由于创建对象的位置不同,对象在内存的开辟区域不同,可能存在堆内存中,或许在栈内存中,那么对象的创建肯定有自身的生命周期,它何时被销毁了?何时该销毁?对于堆 和栈 内的对象,我们知道其生命周期,但是对象的使用不是这么简单,可能我们创建了一个对象被用于不同的系统中(这里指的是不同的条件),如在系统一我们用了这个对象,而在系统二中我们也使用了这个对象,但是我们系统一这个对象如果不想用了,但是系统二中的对象还会接着使用,那么此时对于系统一中这个对象,我们大多数会通过编程将其销毁掉,但是如果处理不正当就会出现内存泄漏,所以我在这里给大家提示一下,java的垃圾回收机制会帮我们处理这些问题,当一个对象不被使用了,这个机制会“知道”它需要被回收,而无须我们手动回收,虽然机制并不知它清理的对象的其它方面,但是就能释放对象所占的内存。

今天的话题二:java的序列化的由来

举个简单例子:如我们打开一个应用程序,我们定义的对象会被在适合的位置创建,然后随着程序的运行而存在,但是当程序一旦被清除进程,那么创建的对象所赋予的值都没有了,这个情况有时候是很好,但是有读者会问,怎么才能保证对象在程序运行时存储的信息,随着程序被清除,下次打开程序还存在了?通过本地文件进行存储?

种种疑问,java对象的序列化的到来就引刃而解,一个类实现了Serializable 这个接口之后,创建该类的对象,该对象就被序列化了;

序列化的实质:将对象转化为对应的字节序列,然后在以后能够通过这个字节序列还原这个对象,通过序列化的对象可以在网络中传输这意味着序列化机制能够自动弥补不同操作系统之间的差异,也就是说

,可以在运行Windows系统的计算机上创建一个对象,将其序列化,通过网络将它发送给一台运行Unix系统的计算机,然后在哪里准确的重新组装,而却不必担心数据在不同机器上的表示会不同,也不关心字节序列的顺序或者其他任何细节。

好了今天就和大家小谈到这,下面附文章开头所提到<>的截图,有兴趣的读者可以联系我哟!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 对象 内存