﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-全世界的屋顶-文章分类-java基础</title><link>http://www.blogjava.net/honeybee/category/28864.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 26 Feb 2008 19:25:10 GMT</lastBuildDate><pubDate>Tue, 26 Feb 2008 19:25:10 GMT</pubDate><ttl>60</ttl><item><title>volatile用法</title><link>http://www.blogjava.net/honeybee/articles/182229.html</link><dc:creator>sun</dc:creator><author>sun</author><pubDate>Tue, 26 Feb 2008 07:37:00 GMT</pubDate><guid>http://www.blogjava.net/honeybee/articles/182229.html</guid><wfw:comment>http://www.blogjava.net/honeybee/comments/182229.html</wfw:comment><comments>http://www.blogjava.net/honeybee/articles/182229.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/honeybee/comments/commentRss/182229.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/honeybee/services/trackbacks/182229.html</trackback:ping><description><![CDATA[一般说来,volatile用在如下的几个地方：<br />
<br />
1、中断服务程序中修改的供其它程序检测的变量需要加volatile;<br />
<br />
2、多任务环境下各任务间共享的标志应该加volatile;<br />
<br />
3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;<br />
<img src ="http://www.blogjava.net/honeybee/aggbug/182229.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/honeybee/" target="_blank">sun</a> 2008-02-26 15:37 <a href="http://www.blogjava.net/honeybee/articles/182229.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java.io.Serializable接口作用</title><link>http://www.blogjava.net/honeybee/articles/174140.html</link><dc:creator>sun</dc:creator><author>sun</author><pubDate>Wed, 09 Jan 2008 15:55:00 GMT</pubDate><guid>http://www.blogjava.net/honeybee/articles/174140.html</guid><wfw:comment>http://www.blogjava.net/honeybee/comments/174140.html</wfw:comment><comments>http://www.blogjava.net/honeybee/articles/174140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/honeybee/comments/commentRss/174140.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/honeybee/services/trackbacks/174140.html</trackback:ping><description><![CDATA[1.网络传输&nbsp;&nbsp;&nbsp;<br />
&nbsp;2.数据库持久&nbsp;&nbsp;&nbsp;<br />
&nbsp;3.把对象保存为文件形式,以便以后还原<br />
&nbsp;4.可以把一个Object写到硬盘上，又可以读回来直接用
<img src ="http://www.blogjava.net/honeybee/aggbug/174140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/honeybee/" target="_blank">sun</a> 2008-01-09 23:55 <a href="http://www.blogjava.net/honeybee/articles/174140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>比较java.io.Externalizable和java.io.Serializable（转）</title><link>http://www.blogjava.net/honeybee/articles/174141.html</link><dc:creator>sun</dc:creator><author>sun</author><pubDate>Wed, 09 Jan 2008 15:55:00 GMT</pubDate><guid>http://www.blogjava.net/honeybee/articles/174141.html</guid><wfw:comment>http://www.blogjava.net/honeybee/comments/174141.html</wfw:comment><comments>http://www.blogjava.net/honeybee/articles/174141.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/honeybee/comments/commentRss/174141.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/honeybee/services/trackbacks/174141.html</trackback:ping><description><![CDATA[<p align="left">即使你没有用过对象序列化（serialization），你可能也知道它。但你是否知道 Java 还支持另外一种形式的对象持久化，外部化（externalization）？</p>
<p align="left">下面是序列化和外部化在代码级的关联方式：</p>
<p align="left">public interface Serializable {} </p>
<p align="left">public interface Externalizable extends Serializable {<br />
void readExternal(ObjectInput in);<br />
void writeExternal(ObjectOutput out);<br />
} </p>
<p align="left"><strong>序列化和外部化的主要区别</strong></p>
<p align="left">外部化和序列化是实现同一目标的两种不同方法。下面让我们分析一下序列化和外部化之间的主要区别。</p>
<p align="left">通过Serializable接口对对象序列化的支持是内建于核心 API 的，但是java.io.Externalizable的所有实现者必须提供读取和写出的实现。Java 已经具有了对序列化的内建支持，也就是说只要制作自己的类java.io.Serializable，Java 就会试图存储和重组你的对象。如果使用外部化，你就可以选择完全由自己完成读取和写出的工作，Java 对外部化所提供的唯一支持是接口：</p>
<p align="left">voidreadExternal(ObjectInput in)<br />
void writeExternal(ObjectOutput out) </p>
<p align="left">现在如何实现readExternal() 和writeExternal() 就完全看你自己了。</p>
<p align="left">序列化会自动存储必要的信息，用以反序列化被存储的实例，而外部化则只保存被存储的类的标识。当你通过java.io.Serializable接口序列化一个对象时，有关类的信息，比如它的属性和这些属性的类型，都与实例数据一起被存储起来。在选择走Externalizable这条路时，Java 只存储有关每个被存储类型的非常少的信息。</p>
<p align="left"><strong>每个接口的优点和缺点</strong></p>
<p align="left"><strong>Serializable</strong><strong>接口</strong></p>
<p align="left">&#183; <strong>优点：</strong>内建支持</p>
<p align="left">&#183; <strong>优点：</strong>易于实现</p>
<p align="left">&#183; <strong>缺点：</strong>占用空间过大</p>
<p align="left">&#183; <strong>缺点：</strong>由于额外的开销导致速度变比较慢</p>
<p align="left"><strong>Externalizable</strong><strong>接口</strong></p>
<p align="left">&#183; <strong>优点：</strong>开销较少（程序员决定存储什么）</p>
<p align="left">&#183; <strong>优点：</strong>可能的速度提升</p>
<p align="left">&#183; <strong>缺点：</strong>虚拟机不提供任何帮助，</p>
<img src ="http://www.blogjava.net/honeybee/aggbug/174141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/honeybee/" target="_blank">sun</a> 2008-01-09 23:55 <a href="http://www.blogjava.net/honeybee/articles/174141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>