哎,虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~好了,废话不多说,下面开始:1. transient的作用及使用方...
分类:
编程语言 时间:
2015-07-16 11:41:07
阅读次数:
179
Java中的Serializable接口和transient关键字Table of Contents1. 向memcached中放数据时遇到NotSerializableException异常2. 问题排查和解决3. 总结1 向memcached中放数据时遇到NotSerializableExcep...
分类:
编程语言 时间:
2015-07-01 11:56:32
阅读次数:
180
最近在阅读ArrayList的源代码时,发现了ArrayList中的用来保存数据的数据使用了transient关键字声明。如下:
private transient Object[] elementData;
当时产生了一个疑问,难道ArrayList不可以序列化吗?但是它又实现了Serializable接口,感觉有点自相矛盾了。
public class ArrayList extends...
分类:
其他好文 时间:
2015-04-29 21:54:08
阅读次数:
286
译文出处:Why does Java have transient variables?
java 中的 transient 关键字表明了 transient 变量不应该被序列化(transient)。
参考Java Language Specification, Java SE 7 Edition, Section 8.3.1.3. transient Fields:被 transient...
分类:
编程语言 时间:
2015-04-24 22:51:01
阅读次数:
217
transient关键字用来防止序列化域。如果一个引用类型被transient修饰,则其反序列化的结果是null。基本类型则为0。如果引用类型时不可序列化的类,则也应该使用transient修饰,它在反序列化时会被直接跳过。可以用transient来修饰不想保存的域下面的例子可以看到被transie...
分类:
编程语言 时间:
2015-04-07 21:24:18
阅读次数:
226
http://zengzhaoshuai.iteye.com/blog/1132288声明为 transient,不被序列化package com.zzs.tet;import java.io.File;import java.io.FileInputStream;import java.io.Fi...
分类:
编程语言 时间:
2015-03-06 12:32:21
阅读次数:
175
1、如果子类实现Serializable接口而父类未实现时,父类不会被序列化,但此时父类必须有个无参构造方法,否则会抛InvalidClassException异常。
2、静态变量不会被序列化,那是类的“菜”,不是对象的。
3、transient关键字修饰变量可以限制序列化。
4、虚拟机是否允许反序列化,不仅取决于类路径和功能代码是否一致,一个非常重要的一点是两个类的序列化 ID 是否一致,...
分类:
编程语言 时间:
2015-02-15 12:15:51
阅读次数:
160
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入...
分类:
编程语言 时间:
2015-02-02 15:27:40
阅读次数:
136
方法表的结构与字段表一样,依次包含了访问标志(access_flags),名称索引(name_index),描述符索引(descriptor_index),属性表集合(attributes)几项,如下表所示:
因为volatile关键字和transient关键字不能修改方法,所以方法表的访问标志中没有了ACC_VOLATILE与ACC_TRANSIENT标志。与之相对的,synchroniz...
分类:
编程语言 时间:
2014-12-13 12:17:54
阅读次数:
177
Annotations——Java注解
你可能会遇到这种需求:通过与元数据(描述其他数据的数据)关联来注解你Java应用程序。一直以来,Java通过transient关键字提供了一种即时注解(ad hoc annotation)机制,这允许你标识一个成员变量在序列化过程中应该被忽略。但是,直到java5才正式地引入了一种标准方式去注解程序。
Java5平台提供了下面四种注解机制:
1. 声明注解类型:@interface;
2. 元注解类型:可以识别应用于注解类型的程序元素和注解的生命周期(注解类型的...
分类:
编程语言 时间:
2014-12-05 10:55:07
阅读次数:
202