serialize是什么意思?
  这个词,在中文中翻译为串行化或者序列化。这两个翻译应该说几乎都无法表达它的实际意义。如果你原本不懂,给你翻译了,你还是不懂。
  事实上这是IO存储中的一个概念。计算机中所有的内容都是0或者1的数字这一点,我想现在可能连五岁顽童也是知道的。这些数字按顺序排列,便可以表示计算机中的万事万物,当然Java的对象也不例外。在内存中,无论如何表示,对我们的操作都没有影响,所以我们不必关心。但是,当我们需要把对象存储到硬盘、数据库或其它相关介质时,我们就需要考虑这个表示格式或者转化方法了。
  那么Java的对象要如何转化为这0、1的序列呢?就是靠序列化。不过大家不必担心,Java在这方面很贴心,不需要你们自己去推敲转化算法,只需要使用java.io.ObjectOutputStream类即可完成复杂的转化工作。但ObjectOutputStream类可以支持的只有实现了Serializable接口的对象,如果没有实现Serializable接口,则会抛出NotSerializableException。

transient
  但是,在一个你希望序列化的类中,常常可能参杂了一些临时性成员变量或者一些你并不希望它们被存储下来的属性,这些成员变量或者属性,就需要用transient关键字修饰。它们会在序列化时被忽略。当从存储介质中读取并还原成对象时,他们会被还原为属性的默认值(基本类型为0或false,对象为null)。
  这就是有关Java中的serialize的一个概述。详细内容可以参考Sun Java Tutorial中关于IO的一章。

为什么项目中的所有Java Bean都要实现Serializable接口?
  这一点要从WebSphere Application Server(以下简称WAS)的Session共享机制说起。在日本的环境上,WAS服务器是互为备份的两台,通过负载均衡dispatcher来分配客户端发来的请求。Session在Web开发中是一个极其重要的存储单位,与用户相关的内容,常常存储在服务器端的Session容器中。如果仅有一台WAS服务器,Session容器仅建立在内存中即可,但当有两台互为备份的WAS服务器时,它们必须共享Session才可以让客户端感觉不出服务器的切换过程。而Session的共享显然无法通过内存实现,必须使用外部存储设备。在WAS中,常用的方法是将Session存储在数据库中。这时,就需要将Session进行序列化,也势必会开始序列化所有Session中存储的内容。为了让这一操作正常进行,所有可能存储在Session中的Java Bean都必须支持序列化,也就必须实现Serializable接口。
  由此可见,并不是所有的Java Bean都需要实现Serializable接口,而只是可能放在Session中的Java Bean有这个必要。但当年项目中的经验型技术高手没有确切地分析清楚问题的根本原因,所以只能根据经验想出了一个权宜之计。

Serializable transient相关推荐

  1. Serializable官方实例解析02-将序列化与自定义数据格式结合使用

    官方地址:Using Serialization with a Custom Data Format 将序列化与自定义数据格式结合使用 1. 介绍 演示如何使用 writeObject  和  rea ...

  2. 我是这样给阿里面试官吹 ConcurrentHashMap的

    因为上篇文章HashMap已经讲解的很详细了,因此此篇文章会简单介绍思路,再学习并发HashMap就简单很多了,上一篇文章中我们最终知道HashMap是线程不安全的,因此在老版本JDK中提供了Hash ...

  3. 面试官:兄弟,说说 ArrayList 和 LinkedList 有什么区别

    作者 | 沉默王二 来源 | 沉默王二(ID:cmower) ArrayList 和 LinkedList 有什么区别,是面试官非常喜欢问的一个问题.可能大部分小伙伴和我一样,能回答出"Ar ...

  4. Java -- 基于JDK1.8的LinkedList源码分析

    1,上周末我们一起分析了ArrayList的源码并进行了一些总结,因为最近在看Collection这一块的东西,下面的图也是大致的总结了Collection里面重要的接口和类,如果没有意外的话后面基本 ...

  5. collection 源码

    转自:http://blog.csdn.net/longlong2015/article/details/48174421 http://blog.csdn.net/mra__s__/article/ ...

  6. ConcurrentHashMap 内部实现分析

    ConcurrentHashMap ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法.Concurrent ...

  7. 深入理解Java对象序列化

    关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结.此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制.在撰写本文时,既参考了Th ...

  8. 理解Java对象序列化

    理解Java对象序列化 关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结.此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制.在 ...

  9. Java集合 LinkedList的原理及使用

    1.LinkedList的概述 2.LinkedList的常用方法 3.LinkedList的三种便利方式 4.LinkedList的总结 1.LinkedList的概述 LinkedList和Arr ...

最新文章

  1. js实现简单的循环打字效果(思路分享)
  2. 我的crystal report for asp.net測試通過了
  3. 想进美团不知道选哪个技术岗位?这里有一份通关秘籍!
  4. php 前往页面,PHP实现网页截图?
  5. 2021某宝上的千月五级分润源码影视小说源码
  6. 在Windows10上运行TensorFlow Android Demo实例
  7. 重载跟重写--笔记2
  8. ES6新特性 - const let var
  9. 高通音频驱动调试(十七)
  10. WebServer服务器
  11. 汉字时钟屏保软件/汉字时钟电脑屏幕保护下载/汉字时钟屏保/windows屏保
  12. zyf整合ssm环境
  13. ubuntu设置桌面图标
  14. 企业测试环境部署(一)
  15. 电脑视频转换成mp4格式,视频格式转换器转换
  16. Goland自定义头部注释,增加author和data等(学习笔记,不作教程)
  17. win ce车载系统_巨好用的飞利浦车载充电器
  18. Linux安装CentOS7操作系统详细教程
  19. JavaEE心得体会
  20. python 梳理:安装并开始使用

热门文章

  1. WebApp开发入门
  2. 我的专业偶像作文计算机,我的崇拜的偶像作文(通用5篇)
  3. CART分类回归树算法
  4. Appfuse创建网站访问慢的问题
  5. PyTorch-09 循环神经网络RNNLSTM (时间序列表示、RNN循环神经网络、RNN Layer使用、时间序列预测案例、RNN训练难题、解决梯度离散LSTM、LSTM使用、情感分类问题实战)
  6. Linux 的chmod权限数字777、755、644代表什么?
  7. DeleteObject()
  8. ”AE-OT A NEW GENERATIVE MODEL BASED ON EXTENDED“阅读笔记
  9. python实战: 短链接生成器
  10. Python Opencv-contrib Camshift kalman卡尔曼滤波 KCF算法 CSRT算法 目标跟踪实现