java 反射 transient_Java基础知识_反射

---恢复内容开始---

什么是反射?

反射是运行状态中,对任意一个类,都能知道这个类的所有属性和方法,对任意一个对象,都能调用它的任意一个方法和属性。这种动态获取信息以及动态调用方法的功能称为Java语言的反射机制。

什么是Java序列化?什么情况下需要序列化?

序列化是为了保存各自对象在内存中的状态,并且可以把保存对象状态再读取出来

以下情况需要Java序列化

1、想把内存中的对象状态保存到一个文件中或者数据库中的时候

2、想用套接字在网络上传送对象的时候

3、想用RMI(远程方法调用)传送对象的时候

在实际开发中,经常需要将信息保存到磁盘中便于检索,但是通过输入输出流的方法逐一对对象属性信息进行操作,很频繁而且容易出错,而序列化提供了轻松解决这个问题的快捷方法。

简单的说,序列化就是将对象的状态存储到特定介质中的过程,也就是将对象状态转换为可保持或传输格式的过程,在序列化过程中,会将对象的公有成员,私有成员包括类名,转换成字节流,然后再把字节流写入数据流,存储到介质(文件)中。

使用序列化的意义在于,将对象序列化后,可以将其转换为字节序列,这样字节序列就可以保存在磁盘上,也可以借助网络进行传输,同时序列化后的对象是二进制状态,这样实现了平台无关性。

使用序列化保存对象信息

序列化机制允许实现了序列化的Java对象转换为字节序列,这个过程需要借助IO流实现

Java中只有实现了java.io.Serializable接口的类才能被序列化,Serializable表示可串行的、可序列化的,所以序列化有的时候也被称作串行化。JDK中的String类,包装类,Date类都实现了Serializable接口。

实例,引入java.io.Serializable,创建一个Student类,实现Serializable接口

1 packagecom.demo;2

3 importjava.io.Serializable;4

5 public class Student implementsSerializable{6 privateString name;7 private intage;8 privateString gender;9 private transient String password;//transient表示这个字段不用序列化

10 public Student(String name, intage, String gender, String password) {11 super();12 this.name =name;13 this.age =age;14 this.gender =gender;15 this.password =password;16 }17 public Student(String name, intage, String gender) {18 super();19 this.name =name;20 this.age =age;21 this.gender =gender;22 }23 publicString getName() {24 returnname;25 }26 public voidsetName(String name) {27 this.name =name;28 }29 public intgetAge() {30 returnage;31 }32 public void setAge(intage) {33 this.age =age;34 }35 publicString getGender() {36 returngender;37 }38 public voidsetGender(String gender) {39 this.gender =gender;40 }41 publicString getPassword() {42 returnpassword;43 }44 public voidsetPassword(String password) {45 this.password =

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值