java反射

记录与梳理一些java学习过程中的常见知识

修饰符与它的值

参考:https://juejin.cn/post/6844904122420838413

修饰符这个词,想必各位在学习Java基础的时候就接触过了,无论是各种大学教程书还是其他各类社会书籍都会介绍。在我们平时使用最多的莫过于: public、private等等,这些属于访问修饰符,然后还有诸如static、final、synchronized等等。修饰符就是用来表示属性、方法等一些特性的关键词。 在Modifier当中一共定义了12修饰符,当然这个其实也是由JVM规范所决定的。

修饰符关键词 十六进制表示 二进制表示 修饰符描述
public 0x00000001 000000000001 公共的访问修饰符,都可以访问
private 0x00000002 000000000010 私有的访问修饰符,只有当前类可以访问
protected 0x00000004 000000000100 受保护的访问修饰符,继承环境中访问
static 0x00000008 000000001000 静态的修饰符,静态属性、方法、代码块等
final 0x00000010 000000010000 终态的修饰符,修饰的对象不能被修改、重写、继承等操作
synchronized 0x00000020 000000100000 同步的修饰符,用户多线程环境中的原子同步操作
volatile 0x00000040 000001000000 也属于同步语义的修饰符,保证线程之间数据的可见性(但不保证线程安全)
transient 0x00000080 000010000000 序列化的修饰符,被修饰的属性不会被加入序列化操作
native 0x00000100 000100000000 本地方法的修饰符,其实现有C/C++来实现
interface 0x00000200 001000000000 糟糕,至今不懂
abstract 0x00000400 010000000000 抽象属性的修饰符,用来标明是抽象属性
strictfp 0x00000800 100000000000 浮点数操作的修饰符,用来统一不同平台间的规范,在浮点操作中严格遵守IEEE-754规范。