`

Java基础-泛型

 
阅读更多

泛型和序列化???

 

泛型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来标识,另一个方法我们可以在类里重写

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics