com.xxx.model的小小问题

balabala_sean 2012-10-31 03:35:26
code 1:

public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String username;
private String password;
private Boolean sex;
private String email;
private String pwd_question;
private String pwd_answer;
private Date reg_date;
private Date last_login_date;
private String last_login_ip;


code 2:

public class User{
private int id;
private String username;
private String password;
private boolean sex;
private String email;
private String pwd_question;
private String pwd_answer;
private Date reg_date;
private Date last_login_date;
private String last_login_ip;



这第一段代码,和第二段代码究竟有什么区别呢?以前一直没在意,但是现在工作有一段时间了还是搞不清楚。

PS:第一段代码是我看到别人的写法,第二段是我写代码的时候的写法
...全文
262 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
杰仔仔哦 2012-10-31
  • 打赏
  • 举报
回复
6 楼正解
balabala_sean 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:F……
[/Quote]

你的意思是,用Integer,Boolean的话,就能防止数据库会存储基本数据类型的默认值么?如果没有赋值的话就是null,而不是0,false,是这个意思么?
balabala_sean 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:F……
[/Quote]

你说的这些我知道,我想知道的是Integer比int的运行性能好吗?
xiaohe8503 2012-10-31
  • 打赏
  • 举报
回复
int id; 默认值为0
private Integer id 默认值为null

boolean 默认值为false
Boolean 默认值为null
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

第一段代码你是把User类序列化了的就是implements Serializable具体你要在什么地方用就看你自己的了


那么private int id和private Integer id 这写法有区别么?

为什么我看到的前辈是Integer Boolean这种封装类来定义entity的属性?
[/Quote]
AlexMoonshadow 2012-10-31
  • 打赏
  • 举报
回复
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型封装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
引 用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数 据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
码跑偏了 2012-10-31
  • 打赏
  • 举报
回复
下在的少一个继关系
nobullet 2012-10-31
  • 打赏
  • 举报
回复
Serializable 接口吗?一定是分布式程序的时候需要用到。两个分布式应用传递对象数据,对象数据就需要实现Serializable接口进行序列化。

至于serialVersionUID 有什么用,看起来是为了进行数据对象版本控制的一种手段。期待楼下有使用经验的给点指导。
balabala_sean 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

第一段代码你是把User类序列化了的就是implements Serializable具体你要在什么地方用就看你自己的了
[/Quote]

那么private int id和private Integer id 这写法有区别么?

为什么我看到的前辈是Integer Boolean这种封装类来定义entity的属性?
meinvhuaiyunle 2012-10-31
  • 打赏
  • 举报
回复
第一段代码你是把User类序列化了的就是implements Serializable具体你要在什么地方用就看你自己的了

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧