泛型和序列化???
泛型List<?>list=new ArrayList<String>();
list.add("12334");
List<Shape>不是List<Circle>、List<Rectancle>的父类,所以不能添加
凡是有?的泛型表示都是不可以进行添加元素的,只能迭代元素
内部类的好处,就是可以class可以是private 所以不是所有人都可以调用,而普通的类只能用public和默认,包内可见,而protected是包内和。
final static没有冲突
一个java文件可以有多个class,编译后有多个class,内部类呢??只有一个class
instanceof 泛型类是不允许的
泛型通配符 类型形参 不能与静态混用
数组是可以进行直接转换的。
但是泛型不是,只要编译没有问题就没有问题。
Integer[] a = new Integer[5];
Number b[];
b = a;
b[0] = 1.5;
ArrayList<String> list1 = new ArrayList<String>();
ArrayList<Object> list2 = new ArrayList<Object>();
list2 = list1;
序列化 FIFO 先入先出
在序列化时,有几点要注意的:
1:当一个对象被序列化时,只保存对象的非静态成员变量,不能保存任何的成员方法和静态的成员变量。
2:如果一个对象的成员变量是一个对象,那么这个对象的数据成员也会被保存。
3:如果一个可序列化的对象包含对某个不可序列化的对象的引用,那么整个序列化操作将会失败,并且会抛出一个NotSerializableException。我们可以将这个引用标记为transient,那么对象仍然可以序列化
还有我们对某个对象进行序列化时候,往往对整个对象全部序列化了,比如说类里有些数据比较敏感,不希望序列化,一个方法可以用transient来标识,另一个方法我们可以在类里重写