- 浏览: 994796 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (367)
- JavaScript (23)
- Java (60)
- Python (41)
- 其他 (36)
- SQL (4)
- 开发工具 (26)
- Linux (15)
- AJAX (6)
- Cache (3)
- 正则 (4)
- 架构 (9)
- 手机 (3)
- MySQL (4)
- Android (115)
- vps (1)
- 网站 (4)
- scale (3)
- 搜索引擎 (3)
- iPhone (2)
- hessian (1)
- hessdroid (1)
- 411 (1)
- jstat (1)
- gc (1)
- gallery (1)
- 惯性 (1)
- eclipse (1)
- mac wget error (1)
- miui file explorer 无用 解决办法 (1)
- vim (1)
最新评论
-
qingyezhangluo:
哎。楼主您既然是分享代码的为什么要加密的呢?而且问你密码还不回 ...
android应用换皮肤(转) -
MagicError:
kavoe 写道下载文件有密码。。。。
http抓包工具 -
knightdf:
我先试下再来
JAVA的RAS加密例子 -
kavoe:
下载文件有密码。。。。
http抓包工具 -
changanfounder:
hmc1985 写道setCallbackDuringFlin ...
android gallery滑动惯性问题
java.io.Serializable 接口没有任何方法和字段,仅仅表示实现它的类的对象可以被序列化。实现了这个接口的所有类及其子类都可以对象序列化。
序列化前,虚拟机要清楚每个对象的结构,所以序列化会比较慢,如果关心性能或者需要读取大量的特定的类对象,可以使用 java.io.Externalizable接口(实现此接口的类的序列化完全由该类程序自身控制)
对象序列化一般出现在如下的环境下:
把对象的字节序列保存在物理存储介质中(如硬盘文件);
把对象的字节序列经网络传输给请求者;
序列过程的特殊处理:
private void writeObject(java.io.ObjectOutputStream out) throws IOException private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException;
当ObjectOutputStream对一个对象开始序列化/反序列化时,如果该对象类具有了方法writeObject()/readObject(),就执行该方法,否则执行默认方法defaultWriteObject()/defaultReadObject().
ANY-ACCESS-MODIFIER Object writeReplace() throws ObjectStreamException; ANY-ACCESS-MODIFIER Object readResolve() throws ObjectStreamException;
在做序列化前,用另一个可序列化对象替代该序列化对象,然后进行序列化(调用defaultWriteObject()或者
writeObject())方法完成序列化操作。
反序列化:
当ObjectOutputStream反序列化时,会先在虚拟接中加载对应类,如果closspath中不存在对应类,则抛出异常:ClassNotFoundException;
不序列化的状态:
对对象的静态(与类相关,与对象无关,而序列化针对的是对象)的或瞬时的(transient)成员,不会进行序列化。
serialVersionUID 版本号:
序列化serialVersionUID 的版本号在反序列化时,用于标志序列化的发送者和接受者是否为该对象加载了与序列化是相兼容的类,如果不兼容(serialVersionUID 不相同),会导致InvalidClassException
。如果类没有显示的声明serialVersionUID,序列化是会计算默认的值。默认值在不同编译器中的结果肯能不同,为了能更好的跨平台,最好显示的声明它。
ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;
实例练习:
- public class SerialTest {
- public static void main(String[] args){
- Customers customer = new Customers();
- try {
- FileOutputStream file = new FileOutputStream("customer.obj");
- ObjectOutputStream out = new ObjectOutputStream(file);
- out.writeObject(customer);
- System.out.println(file.getFD().toString());
- file.close();
- out.close();
- FileInputStream fileIN = new FileInputStream("customer.obj");
- ObjectInputStream in = new ObjectInputStream(fileIN);
- try {
- Customers cus = (Customers)in.readObject();
- /*这里虽然可以打印出静态变量,但不是因为对它进行了序列化,而是因为静态变量自身的特性造成的*/
- System.out.println(cus.toString());
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- class Customers implements Serializable{
- private static final long serialVersionUID = 167L;
- private String name = "aq";
- private int old = 45;
- private String address = "SuZhou JiangSu China";
- private transient String alias = "aaq";
- private static String alisa1 = "aaaq";
- private void writeObject(ObjectOutputStream out)throws IOException{
- this.old = 55;
- out.defaultWriteObject();
- }
- private void readObject(java.io.ObjectInputStream in)throws IOException, ClassNotFoundException{
- in.defaultReadObject();
- this.old = this.old + 5;
- }
- public String toString(){
- StringBuilder builder = new StringBuilder(128);
- builder.append("name=").append(name)
- .append("\r\nold=").append(old)
- .append("\r\naddress=").append(address)
- .append("\r\nalias=").append(alias)
- .append("\r\nalisa1=").append(alisa1);
- return builder.toString();
- }
发表评论
-
android屏幕适配
2012-11-16 17:24 2136屏幕适配一直是一个让人头疼的问题,论坛上讨论这个问题的最后也 ... -
禁止Eclipse中xml文件Run as的XSL Transformation生成out.xml以方便Android应用开发
2012-08-26 21:38 2581可以在Eclipse里面配置,菜单Windows->P ... -
android 自带的主题 theme 的使用
2012-08-25 23:21 2325在android的sdk 安装目录data\r ... -
android开发之gallery 实现滚动一张且短距离滑动实现滚动
2011-12-19 18:50 1875首先gallery的特点就不用多说了吧,惯性滚动、半屏翻页,但 ... -
使用Jstat监控gc情况(收藏)
2011-12-19 13:22 1798性能测试过程中,我们 ... -
eclipse生成javadoc乱码解决
2011-10-24 09:37 1230eclipse在生成javadoc的时候出现乱码,是因为 ... -
java中在静态方法或变量中动态获取当前类的类名
2011-10-14 11:20 3644java中在静态方法中动态获取当前类的类名或者动态获取当前类的 ... -
飞鸽传书实现原理
2011-10-13 11:35 3116飞鸽传书的实现原理: (1)最关键的是局域网用户列表的 ... -
Android开发——利用Cursor+CursorAdapter实现界面实时更新(转)
2011-09-20 15:47 3033好久没有更新博客了 ... -
Nginx使用反向代理时 Hessian 的 411 错误解决方案【转】
2011-09-15 13:48 2323问题描述: 用 Hessian 实现 web se ... -
"Copy" did not complete normally. Please see the log for more information.
2011-05-06 17:19 3998在用android日志的时候老是弹出一个窗口,内容 ... -
jdk api下载地址备份
2011-02-15 10:58 1534中文jdk6的api: JDK6 API 中文版 H ... -
JAVA NIO 简介(转)
2010-12-09 13:03 1012http://www.iteye.com/topic/8344 ... -
netty的资料
2010-10-31 16:06 1249http://hornetq.sourceforge.net/ ... -
Java程序发邮件小例子(转载收藏)
2010-10-27 21:25 1530今天试了一个Java写的发邮件小例子,需要的jar包有 ... -
使用Netty 构造一个异步的httpclient
2010-09-21 00:35 7796原文地址:http://dev.firnow.com/co ... -
Netty使用初步
2010-09-21 00:26 13850收藏自:http://www.kafk ... -
集群环境下SESSION处理(转)
2010-09-08 15:24 1804本文转自:http://blog.csdn.net/l ... -
Java集合的Stack、Queue、Map的遍历
2010-09-08 13:00 1385在集合操作中,常常 ... -
<转>,防止刷新/后退引起的重复提交问题的Java Token代码,非Struts
2009-12-10 13:31 1870贴子转自http://hi.baidu.com/bobylou ...
相关推荐
java.io.Serializable序列化问题
Java序列化(java.io.Serializable) Hadoop序列化的特点 Hadoop的序列化格式:Writable 序列化格式特点: 紧凑:高效使用存储空间。 快速:读写数据的额外开销小 可扩展:可透明地读取老格式...
其中包括以下接口和类: java.io.Serializable java.io.Externalizable ObjectOutput ObjectInput ObjectOutputStream ObjectInputStream Java高级程序设计实战教程第五章-Java序列化机制全文共15页,当前为第7页。...
主要介绍了java 中序列化NotSerializableException问题解决办法的相关资料,这里对序列化问题进行描述说明,并提供解决办法,希望能帮助到大家,需要的朋友可以参考下
本文通过分析ArrayList的序列化来介绍Java序列化的相关内容。主要涉及到以下几个问题: 怎么实现Java的序列化 为什么实现了java.io.Serializable接口才能被序列化 transient的作用是什么 怎么自定义序列...
被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable。 两种序列化方式的区别: 1.在...
//一个类要想实现序列化则必须实现Serializable接口 class Person implements Serializable { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = ...
一般而言,要使得一个类可以序列化,只需简单实现java.io.Serializable接口即可(还要实现无参数的构造方法)。该接口是一个标记式接口,它本身不包含任何内容,实现了该接口则表示这个类准备支持序列化的功能。...
反序列化就是序列化的逆过程,把磁盘文件中或网络节点的二进制数据恢复成java对象的过程,通常是将二进制数据转换为对象。 序列化的应用场景:将对象存储在文件或数据库中,利用套接字在网络上进行对象传输,RMI...
最近阅读Serializable接口和Externalizable接口的源码,并结合了一些资料,对面试过程中与序列化相关的内容做了一些总结。 一、序列化、反序列化、使用场景、意义。 序列化:将对象写入IO流中; 反序列化:从IO流中...
25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................
netty-JBoss-Marshalling 使用JBoss-marshalling编码包进行java的序列号编码 ...无须实现java.io.Serializable接口,即可实现Java序列化; 通过缓存技术提升对象的序列化性能。 JBoss Marshalling更多是在JBoss内部使
java.io.NotSerializableException: ...在mybatis中使用二级缓存时候就必须需要将实体类序列化implements Serializable,我的mapper文件使用了标签,使用了mybatis提供的二级缓存,所以在我的实体类里面必须序列化
只要我们的class 实现了java.io.Serializable接口,就可以利用ObjectOutputStream的writeObject()方法将一个对象序列化;利用ObjectInputStream的readObject()方法,可以返回读出的object对象。Serializable接口...
对于一些对象的传递,我们则需要把被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable
被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable。 两种序列化方式的区别: 1.在...
本文实例讲述了Android编程实现使用Intent传输包含自定义类的ArrayList。分享给大家供大家参考,具体如下: ...想实现对象的序列化,需要实现java.io.Serializable接口(注意,这个接口只是一个标记接口,并没有具体
接口:Connection、Map、List、Set、Comparable(集合比较)、Serializable(序列化)。 包:java.util、java.lang、java.io、java.sql、javax.net、 java.awt、javax.xml 、javax.sevlet。 1.面向对象的特征有哪些? 1...
Serializable 类通过实现 java.io.Serializable 接口以启用其序列化功能。 类摘要 BufferedInputStream BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。 ...
但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...