一个公司面试题~!
来源:互联网 发布:sql group by 取多列 编辑:程序博客网 时间:2024/04/30 07:45
昨天一个好朋友和我打电话说,他接到一个著名公司的面试通知,然后他很欣喜的去了,因为他深入j2ee开发很多年,对于各种框架的应用十分的熟练,就是那种明天上班马上就能上手工作的那种人,公司的面试题很简单,却给他出了一个简单的难题:
题:假设某个Login对象保存某个特定的登录会话信息,登录的合法性通过校验以后,我们想把数据保存下来,但是不保存密码,为了做到这一点公司的技术人员实现的Serializable接口,这是为什么呢?下面给出了代码,但是代码中缺少一些语句,请你给添加上。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Date;
public class Login implements Serializable {
private Date date = new Date();
private String username;
private transient String password;
public Login(String name, String pwd) {
username = name;
password = pwd;
}
public String toString() {
String pwd = (password == null) ? "(n/a)" : password;
return "Login info:/n username:" + username + "/n date:" + date
+ "/n password:" + pwd;
}
public static void main(String[] args) throws Exception{
Login a=new Login("tianyi","easyjf");
System.out.println("Login a="+a);
ObjectOutputStream o=new ObjectOutputStream(new FileOutputStream("Login.out"));
o.writeObject(a);
o.close();
Thread.sleep(1000);
ObjectInputStream in=new ObjectInputStream(new FileInputStream("Login.out"));
System.out.println("Recovering object at"+new Date());
a=(Login)in.readObject();
System.out.println("Login a="+a);
}}
,这个题目就是对java基础的考察,不了解这个序列化接口的人们肯定解决不了这个问题,序列化接口大家都知道,他什么方法都没有,但是实现序列化接口的类,它包含transient关键字,只要实现这个关键字就能很好的控制字段,他可以逐个关闭序列化,用Bruce Eckel的话说“不用麻烦你保存或者恢复数据-------我自己会处理的!”,这个题目就是考察这个简单的东西了,只要在password前面加上关键字transient就可以解决这个问题了!- 一个公司面试题~!
- 一个moto公司的面试题
- 编写一个公司的面试题问题
- 一个吃货公司的面试题整理
- 公司面试题
- 公司面试题
- 信尔杰公司面试题
- 公司面试题
- IT公司面试题
- 公司的面试题
- 一些公司面试题
- OC公司面试题
- 公司面试题精选
- IBM公司面试题
- 公司面试题
- 华为公司面试题
- 公司面试题
- 大公司面试题
- chdir函数问题,请教高手! unix转移linux
- OpenGL入门教程
- Spring Framework之最佳实践二
- vi命令一览表(转)
- 孙鑫VC++讲座笔记
- 一个公司面试题~!
- Ruby入门教程和技巧
- servlet+Hibernate文件下载组件
- XAML 学习(1)
- ORACLE中有关两个日期型变量相减得到天数的问题
- JSON 基础
- 获取html页面内容的方法
- WEB入侵检测及简单实现
- 使用struts+spring+hibernate 组装web应用