限定符和数据类型
1、限定符
限定符一般指用于改变类、方法、变量等成员行为的关键字,这里分为访问限定符和非访问限定符。
访问限定符
访问范围 | private | default | protected | public |
---|---|---|---|---|
同一类 | 1 | 1 | 1 | 1 |
同一包 | 1 | 1 | 1 | |
(其他包)子类 | 1 | 1 | ||
全局 | 1 |
非访问限定符
- final:
- 用于类:表示该类不能被继承。
- 用于方法:表示该方法不能被重写。
- 用于变量:表示该变量是一个常量,一旦赋值后就不能再改变。
- static:
- 用于成员变量:表示该变量属于类级别,所有实例共享同一份数据。
- 用于方法:表示该方法可以通过类名直接调用,不需要实例化对象。
- 用于内部类:表示这是一个静态内部类,不依赖于外部类的实例。
- abstract:
- 用于类:表示该类是一个抽象类,不能被实例化,必须被继承。
- 用于方法:表示该方法是一个抽象方法,没有具体实现,需要子类来实现。
- synchronized:
- 用于方法或代码块:确保线程安全,控制多线程对共享资源的访问,使得 同一时间只有一个线程可以执行该段代码。
- volatile:
- 用于变量:保证了多线程环境下的可见性和有序性,但不保证原子性。
- transient:
- 用于变量:指示序列化时忽略该变量,不将其状态保存到持久存储中。
2、数据类型
基本数据类型(primitive type)
名称 | 大小 | 范围 | 成员变量初始值 |
---|---|---|---|
byte | 1字节 | [-27,27-1] | 0 |
short | 2字节 | [-215,215-1] | 0 |
int | 4字节 | [-231,231-1] | 0 |
long | 8字节 | [-263,263-1] | 0L |
float | 4字节 | 0.0F | |
double | 8字节 | 0.0 | |
char | 2字节 | ‘\u0000’ | |
boolean | 1位 | false |
注意Java中局部变量没有初始值,只有成员变量有初始值。
引用类型(reference type)
类、接口、数组……