transient:修饰变量,指示变量为不需要进行序列化(持久化)的属性

序列化是使对象的状态持久化的过程。这意味着对象的状态被转换为字节流,用于持久化(例如,将文件存储在文件中)或传输(例如,通过网络发送字节)。以同样的方式,我们可以使用反序列化从字节中恢复对象的状态。序列化主要用于网络编程是Java编程中的重要概念之一。需要通过网络传输的对象必须转换为字节。为此,这些类或接口需要实现该Serializable接口。

在某些情况下,可能希望避免持久化某些变量,因为您不需要持久保存这些变量,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。静态(static)变量不会被序列化,因此不需要用transient修饰

 

instanceof:用来测试它左边的对象是否是它右边的类的实例,返回boolean类型

null用操作符instanceof测试任何类型时都是返回false

 

final:可以声明成员变量、方法、类以及本地变量,将引用声明为final,将不能改变这个引用了,编译器会检查代码,在你试图将变量再次初始化时,编译器会报编译错误。

final变量:不可变,只读,作为常量

final方法:声明方法表示方法不可被子类覆盖

final类:String,Integer等包装类,不能被继承

使用final关键字在jvm和Java应用中会缓存数据,提高性能;在多线程环境下安全的共享;jvm会对final变量,方法,类进行优化

 

static:用来修饰变量,方法,表示静态的意思,所有成员共享,可以直接通过className调用

用static修饰,在类被加载时就已经"准备好了",也就是可以被使用或者已经被执行,可以脱离对象而执行

 

volatile、synchronized

用于多线程操作,详见多线程部分

posted on 2019-03-12 10:39  MC伍  阅读(97)  评论(0编辑  收藏  举报