访问控制类型 private、protected、public 3个
修饰说明类型 class、abstract、extends、final、implements、interface、native、new、static、strictfp、synchronized、transient、volatile  
程序控制类型 break、continue、return、do、while、if、else、for、instanceof、switch、case、default  
错误处理类型 try、catch、throw、throws  
包相关 import、package  
基本类型 boolean、byte、char、short、int、float、double、long、null、true、false  
变量引用 super、this、void  
保留字 goto、const  

1、transient

(1)一句话描述:被该关键字修饰的变量不会被序列化(序列化指的是java内存中的对象转换为数据流存入磁盘或者发送给网络),能被序列化的对象一定是实现了Serializable接口。

(2)说明:a. static类型的变量肯定不会被序列化;b. Externalizable这个接口覆盖了Serializable接口序列化和反序列化的方法,用户自定义序列化和反序列化不受transient关键字的控制。

2、volatile

(1)一句话描述:多线程间变量[线程间共享变量讨论这个才有意义哈]可见性(线程内存副本与主内存间数据[只有共享变量才会在主内存中]及时同步)及禁止指令重排序。

(2)说明:a. 实现原理很复杂【https://zhuanlan.zhihu.com/p/138819184

3、flinal

方法形参上的final是为了让内部类可以访问,除此之外没什么用。

04-12 02:40