访问控制类型 | 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是为了让内部类可以访问,除此之外没什么用。