什么是反射?
所谓反射,是java在运行时进行自我观察的能力
,通过class、constructor、field、method
四个方法获取一个类的各个组成部分。
在Java运行时环境中,对任意一个类,可以知道类有哪些属性和方法
。这种动态获取类的信息以及动态调用对象的方法的功能来自于反射机制。
什么是 java 序列化?什么情况下需要序列化?
序列化就是一种用来处理对象流的机制
。将对象的内容流化,将流化后的对象传输于网络之间。
序列化是通过实现serializable接口
,该接口没有需要实现的方法,implement Serializable只是为了标注该对象是可被序列化的
,使用一个输出流(FileOutputStream)来构造一个ObjectOutputStream对象
,接着使用ObjectOutputStream对象的writeObejct(Object object)方法就可以将参数的obj对象到磁盘
,需要恢复的时候使用输入流。
序列化是将对象转换为容易传输的格式的过程。
例如,可以序列化一个对象,然后通过HTTP通过Internet在客户端和服务器之间传输该对象。在另一端,反序列化将从流中心构造成对象。
一般程序在运行时,产生对象,这些对象随着程序的停止而消失,但我们想将某些对象保存下来,这时,我们就可以通过序列化将对象保存在磁盘
,需要使用的时候通过反序列化获取到。
对象序列化的最主要目的就是传递和保存对象,保存对象的完整性和可传递性。
譬如通过网络传输或者把一个对象保存成本地一个文件的时候,需要使用序列化。