第十三篇:泛型+序列化增强应用

1)如何理解泛型?
1:参数化类型,是JDK1.5的新特性(定义泛型时使用参数可以简单理解为形参)
2:编译时的一种类型,此类型仅仅再编译阶段有效,运行时无效

2)为何使用泛型?
3:提高编程时灵活性
4:提高程序运行时的性能(在编译阶段解决一些运行时需要关注的问题,其例如强转)

3)泛型的应用类型?
5:泛型类:class类型<泛型>{}
6:泛型接口:interface接口名<泛型>{}
7:泛型方法:访问修饰符<泛型>方法返回值类型 方法名(形参){}

4)泛型的通配符?(这里的通配符可以看成是一种不确定的类型)
8:泛型应用时有一个特殊符号"?",可以代表一种任意参数类型,注释是实参
9:通配符泛型只能应用于变量的定义

5)泛型的上下界问题?
10:指定泛型下界:
11:指定泛型上界:
例如:
List list1=new ArrayList();
List list2=new ArrayList();
说明:这种上下界一般会用于方法参数变量定义,方法返回值类型定义

6)泛型类型擦除?
泛型是编译时的一种类型,在运行时无效,运行时候都会变成Object类型

1.2序列化基础增强
1)何为序列化&反序列化
1:序列化:将对象转换为字节的过程
2:反序列化:将字节转换为对象的过程

2)序列化的应用场景?
3:网络通讯
4:数据存储(例如文件,缓存)

3)Java中的对象的序列化与反序列化?
5:对象要实现Serializable接口
6:添加序列化id(为反序列化提供保障)

4)Java中的序列化存在安全问题如何解决?
7:添加writeObject(ObjectOutputStream out)方法
8:添加readObject(ObjectInputStream in)方法对内容先进行反序列化然后在执行解密操作

5)Java中的序列化的粒度如何控制?
 9:Transient当少量属性不需要序列化时,使用此关键字
 10:Externalizable当只有少量属性不需要序列化时实现此接口然后自己进行序列化操作,但是要序列化的对象必须用public修饰

你可能感兴趣的:(第十三篇:泛型+序列化增强应用)