引用
最近一段时间想把集合部分复习下,上午没事情做,读读jdk自带的src,看ArrayList类时,第二条语句难倒了我!
private transient Object[] elementData;
transient关键字是什么意思啊!学java零零散散也有1年了,真是孤陋寡闻啊……
看看下面的例子,一个登陆时,密码与ID,密码最后没打印,就会明白transient 是干什么了。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Date;
public class LoggingInfo implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Date loggingDate = new Date();
private String uid;
private transient String pwd;
LoggingInfo(String user, String password) {
uid = user;
pwd = password;
}
public String toString() {
String password = null;
if (pwd == null) {
password = "NOT SET";
} else {
password = pwd;
}
return "logon info: \n " + "user: " + uid + "\n logging date : "
+ loggingDate.toString() + "\n password: " + password;
}
public static void main(String[] args) {
LoggingInfo logInfo = new LoggingInfo("MIKE", "MECHANICS");
System.out.println(logInfo.toString());
try {
ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream(
"logInfo.out"));
o.writeObject(logInfo);
o.close();
} catch (Exception e) {// deal with exception
}
// To read the object back, we can write
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(
"logInfo.out"));
LoggingInfo logInfo1 = (LoggingInfo) in.readObject();
System.out.println(logInfo1.toString());
} catch (Exception e) {// deal with exception
}
}
}
引用
在上面代码中,transient变量的值不会被写入到对象流中,由transient修饰的变量在序列化时不保存状态
打印结果:
logon info:
user: MIKE
logging date : Wed Mar 18 02:43:51 GMT 2009
password: MECHANICS
logon info:
user: MIKE
logging date : Wed Mar 18 02:43:51 GMT 2009
password: NOT SET
分享到:
相关推荐
对于新手来说,理解Java的关键字是非常重要的一步,因为它们构成了语言的基础并指导了代码的结构和行为。 Java的关键字是被语言本身保留的词汇,它们有特定的含义和功能。例如,`byte`, `short`, `int`, `long`, `...
Java编程基本概念 Java编程基本概念是Java语言的基础知识,了解这些基本概念对于深入学习Java编程至关重要。本文将详细介绍Java编程的基本概念,包括标识符、...这对于学习Java编程的新手和老手都具有很高的参考价值。
进行高精度运算可以用java.math包中BigDecimal类中的方法。 自动类型提升又称作隐式类型转换。 强制类型转换:int ti; (byte) ti ; 强制转换,丢弃高位 宣告变量名称的同时,加上“final”关键词来限定,这个...
Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它是Java Enterprise Edition(Java EE)和Java Standard Edition(Java SE)的一部分,提供了对象/关系映射(ORM)工具,使得...
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的数据。它为Java开发者提供了一种对象关系映射(ORM)...因此,无论你是Java新手还是有经验的开发者,学习并掌握JPA都是十分有价值的。
本培训适合对Java、SQL、JDBC有一定了解的新手,旨在帮助学员理解O/R Mapping原理,掌握Hibernate的使用,并能在实际项目中应用。 **一、持久化层——O/R Mapping** 在基于B/S的三层架构中,持久化层是负责数据...
- **瞬时态 (Transient)**:当一个对象刚被创建但还没有被保存到数据库中时的状态。 - **持久态 (Persistent)**:当一个对象已经被保存到数据库,并且在当前 Session 的缓存中时的状态。 - **特点**:此时对象可以...
Hibernate作为Java领域中最流行的ORM框架,提供了一种高效且灵活的数据访问解决方案。 2. **Hibernate架构** Hibernate主要由配置文件(hibernate.cfg.xml)、实体类(Entity)、持久化接口(Hibernate Session)...