Java中的Serializable接口和transient关键字 Table of Contents 1. 向memcached中放数据时遇到NotSerializableException异常 2. 问题排查和解决 3. 总结 1 向memcached中放数据时遇到NotSerializableException异常 项目中用到了memcached缓存,存储客户的组织结构,以便提高系统性能.之前系统运行正常,近期为了和Portal对接,更新了涉及到组织结构的jar包(由公司产品部门维护),更…
在java中,实体类是一个非常重要的概念,我们可以在实体类中封装对象.设置其属性和方法等.关于实体类,也经常涉及到适配器模式.装饰者模式等设计模式.那么在实际代码开发中,关于实体类的注意事项有哪些呢? 1. Serializable接口 实现该接口可以实现序列化,Serializable接口没有方法或字段,仅用于标识可序列化的语义.但是,如果一个类没有实现这个接口,想要被序列化的话,就会抛出java.io.NotSerializableException异常. 2. transient关键字 t…
1.什么是序列化和反序列化Serialization是一种将对象转为为字节流的过程:deserialization是将字节流恢复为对象的过程. 2.什么情况下需要序列化a)当你想把的内存中的对象保存到一个文件中或者数据库中时候:b)当你想用套接字在网络上传送对象的时候:c)当你想通过RMI传输对象的时候: 3.如何实现序列化将需要序列化的类实现Serializable接口就可以了,Serializable接口和Cloneable接口一样,不含任何方法,是个标记接口. 4.代码分析 package…
1. 什么是Serializable接口? 当一个类实现了Serializable接口(该接口仅为标记接口,不包含任何方法),表示该类可以被序列化. 序列化的目的是将一个实现了Serializable接口的对象转换成一个字节序列, 可以将该字节序列保存起来(如:保存在一个文件中),以后可以随时将该字节序列恢复为原来的对象.甚至可以将该字节序列放到其他计算机上或者通过网络传输到其他计算机上恢复,只要该计算机平台存在相应的类. 2. 如何实现? 首先创建一个OutputStream对象,然后将其封装…
实现java.io.Serializable 接口的类是可序列化的.没有实现此接口的类将不能使它们的任一状态被序列化或逆序列化. 序列化类的所有子类本身都是可序列化的.这个序列化接口没有任何方法和域,仅用于标识序列化的语意.允许非序列化类的子类型序列化,子类型可以假定负责保存和恢复父类型的公有的.保护的和(如果可访问)包的域的状态.只要该类(扩展)有一个无参构造子,可初始化它的状态,那么子类型就可承担上述职责.在这种情况下申明一个可序列化的类是一个错误.此错误将在运行时被检测.就是可以把对象存到…
实现java.io.Serializable 接口的类是可序列化的.没有实现此接口的类将不能使它们的任一状态被序列化或逆序列化. 序列化类的所有子类本身都是可序列化的.这个序列化接口没有任何方法和域,仅用于标识序列化的语意.允许非序列化类的子类型序列化,子类型可以假定负责保存和恢复父类型的公有的.保护的和(如果可访问)包的域的状态.只要该类(扩展)有一个无参构造子,可初始化它的状态,那么子类型就可承担上述职责.在这种情况下申明一个可序列化的类是一个错误.此错误将在运行时被检测.就是可以把对象存到…
什么情况下需要修改serialVersionUID 的值?      序列化运行时使用一个称为 serialVersionUID 的版本号与每个可序列化类相关联,该序列号在反序列化过程中用于验证序列化对象的发送者和接收者是否为该对象加载了与序列化兼容的类.如果接收者加载的该对象的类的 serialVersionUID 与对应的发送者的类的版本号不同,则反序列化将会导致 InvalidClassException.可序列化类可以通过声明名为 "serialVersionUID" 的字段(…
Java中的标记接口(Marker Interface),又称标签接口(Tag Interface),具体是不包含任何方法的接口.在Java中很容易找到标记接口的例子,比如JDK中的Serialzable接口就是一个标记接口. 首先要明确的是,标记接口并不是Java语言独有的,而是计算机科学中的一种通用的设计理念. The tag/marker interface pattern is a design pattern in computer science, used with languag…
Java 中的集合接口——List.Set.Map 什么叫集合:集合就是Java API所提供的一系列类的实例,可以用于动态存放多个对象.这跟我们学过的数组差不多,那为什么我们还要学集合,我们看看数组跟集合有什么区别: 数组:长度固定,遍历速度快 可以存储基本类型和引用类型: 集合:长度不固定,只能存储引用类型对象: 从数组跟集合的特点我们很明显的看出,数组有一定的局限性,如果我们需要不定期的往我们的数据中存储数据,数组就满足不了我们的要求. Java集合框架提供了一套性能优良.使用方便的接口和…
转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract c…