transient 英 ['trænz??nt] -Java 关键字

java有个特点就是序列化(Serializable,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),这一操作又称为对象持久化保存

,那么当你从本地还原这个文件时,你可以将它转换为它本身。这可以极大地方便网络上的一些操作,但因为涉及到安全问题,所以并不希望把类里面所有的东西都进行存储(因为那样,别人可以通过序列化知道类里面的内容)

,这时我们就可以使用transient这个关键字,它的意思是临时的,即加上它之后的变量不会随类一起序列化到本地,所以当还原后,这个关键字定义的变量也就不再存在,这样就可以防止别人通过序列化知道类里面的内容。

接下来,简单的写一个demo

执行结果如下:

Sat Sep 09 16:52:44 CST 2017
user1
admin123
Sat Sep 09 16:52:44 CST 2017
user1
Not Set

如果我们在构造函数中给密码初始值,那么在将序列化之后的对象转换为具体类的对象时密码的值还存在吗?答案是否定的。将持久化对象转换为具体类的对象,并不会调用具体类的构造函数。

所以程序执行的结果仍然是Not Set

transient 英 ['trænz??nt] -Java 关键字

时间: 2024-10-13 17:16:21

transient 英 ['trænz??nt] -Java 关键字的相关文章

java关键字transient与volatile小结

本文转自:http://heaven-arch.iteye.com/blog/1160693 transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下. transient transient是类型修饰符,只能用来修饰字段.在对象序列化的过程中,标记为transient的变量不会被序列化. 示例: class Test {transient int a; // 不会被持久化int b; // 持久化} 当类Test的实例对象被

Java关键字transient和volatile小结(转)

Java关键字transient和volatile小结(转) transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下. transient transient是类型修饰符,只能用来修饰字段.在对象序列化的过程中,标记为transient的变量不会被序列化. 示例: class Test { transient int a; // 不会被持久化 int b; // 持久化 } 当类Test的实例对象被序列化(比如将Test类的

Java关键字transient和volatile小结

转自:http://heaven-arch.iteye.com/blog/1160693 transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下. transient transient是类型修饰符,只能用来修饰字段.在对象序列化的过程中,标记为transient的变量不会被序列化. 示例: class Test { transient int a; // 不会被持久化 int b; // 持久化 } 当类Test的实例对象

java关键字——transient

transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分.当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的.这样对象的size就会小一些,相对占用的网络资源就会小.java关键字--transient

java 关键字与保留字

Java 关键字列表 (依字母排序 共51组),所有的关键字都是小写,在MyEclipse中都会显示不同的颜色: abstract, assert,boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum,extends, final, finally, float, for, if, implements, import, instanceof, int, i

Java关键字

Java的关键字[个人整理] 关键字总览:-----------abstract.assert.boolean.break.byte.case.catch.char.class.continue.default.do.double.else.enum.extends.final.finally.float.for.if.implements.import.instanceof.int.interface.long.native.new.package.private.protected.publ

再回首,Java温故知新(二):Java关键字

Java中类型和方法名的定义规则很宽松,但也不是可以随意定义,基本的规则为必须是英文字母开头且不能使用Java关键字,这里摘录下书中的附录,具体到每个关键字的用法会在后续的学习中陆续进行实践. 关键字 说明 abstract 标识抽象类或抽象方法 assert 查找内部程序错误 boolean 布尔类型变量 break 跳出switch语句或者循环语句 byte 8位整数类型 case switch开关语句的分支 catch try...catch语句中异常处理部分 char Unicode字符

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

java关键字详解

Java关键字及其作用 目录 Java关键字及其作用--- 1 一.     关键字总览:2 二.     详细解释--- 3 1.访问控制--- 3 1)私有的-- 3      private 2)受保护的-- 3      protected 3)公共的-- 3      public 2.类.方法和变量修饰符--- 3 1)声明抽象-- 3      abstract 2)类-- 4      class 3)继承.扩展-- 4      extends 4)最终.不可改变-- 4