java 序列化有什么用?序列id有什么用?
序列化类是可以被在网络上传输的(或者也可以被序列化到本地磁盘并生成.ser就文件),并且可以被接收方反序列化。字符串、数组、枚举是不需要序列化就可以传输的。
序列化id决定能否成功反序列化,简单来说序列化机制是通过在运行时判断类的serialVersionUID进行比较,如果相同则认为一致的,可以进行反序列化。
现在都是JSON格式字符串进行网络传输,不建议使用序列化方式;
为什么网络传输时对象要序列化,而字符串就不用序列化网络传输会将对象转换成字节流传输,序列化可以将一个对象转化成一段字符串编码,以便在网络上传输或者做存储处理,使用时再进行反序列,而字符串不用序列化的原因是如果你看过javaSE的源码,你就知道,字符串是已经实现了Serializable接口的,所以它已经是序列化了的
return 和finally执行顺序
- finally中没有返回值的话,会先执行finally的代码,然后才执行try或catch中的return方法
- finally中有return返回值的话,不会走try、catch的返回值
```java
public static int show() {
try {
} catch (Exception e) {int a = 8/1;
return 1;
} finally {return 2;
} } public static void main(String args[]) { System.out.println(show()); }System.out.println("finally模块被执行");
return 3; //当此行注释掉,返回的是: finally模块被执行 1
///////输出 finally模块被执行 3 ```