java序列化与反序列化
我们通常创建实体类的时候都会习惯性的去实现serializable接口,那么,实现它有什么意义呢?自然就是为了能够序列化对象了,那么,为什么要对对象进行序列化呢?这与我们session有关。当开启一个会话的时候,web就会创建一个HttpSession对象,每一个对象都会占用一定的内存,如果同一个时间段内访问的用户太多,就会消耗大量的服务器内存,为了解决这样的问题,就引出了session持久化这样一个概念。 session持久化:web服务器会把暂时不活动并且没有失效的HttpSession对象转移到数据库或者文件系统中储存,服务器要再用时会把它们调取到内存。 通俗一点来说,当我们搬一个大型家具的时候,因为无法整个的通过门,那么我们会把这个家具拆分成一小部分,一小部分的,这样当我们把所有零件都搬过门的时候,再把这些零部件进行还原,还原成一个完整的家具。这就是序列化和反序列化的一个过程。实现序列化,也就是为了方便我们随取随存。减轻web浏览器的负担,进行序列化的数据可以在硬盘等存储设备中进行长期保存,这是序列化的主要用途之一。 序列化是指将对象转换为字节序列,反序列化是将字节序列转换为对象。主要用于在网络上进行数据间的传输使用。 某些私人的,不适合公开的字段可以使用transient关键字屏蔽,屏蔽的字段将不会进行序列化,可以保证秘密数据的安全性。