今天是国庆第2天,继续学习Java[1]。
内置数据类型
byte:8位
- 最小值:-128
- 最大值:127
- 默认:0
short:16位
- 最小值:-3万
- 最大值:3万
- 默认:0
int:32位
- 最小值:-20亿
- 最大值:20亿
- 默认:0
long:64位
- 最小值:
- 最大值:
- 默认:0L
float:32位
- 默认:0.0f
double:64位
- 默认:0.0d
boolean:
默认:false
char:16位
- 最小值:
u0000,0 - 最大值:
uffff,65535 - 默认:
u0000
引用类型
- 对象、数组都是引用数据类型
- 所有引用类型的默认值都是null
- 一个引用变量可以用来引用任何与之兼容的类型
Java常量
- final double PI 3.14;常量在程序运行时,不能修改。
自动类型转换
- 不能对boolean类型进行类型转换
- 不能把对象类型转换成不相关类的对象
- 在把容量大的类型转换为容量小的类型时必须使用使用强制类型转换
- 转换过程中可能导致精度损失或溢出
- 浮点数到整数转换会舍弃小数
- 自动类型转换必须满足转换前的数据类型位数小于转换后的数据类型
强制类型转换
- 转换的数据类型必须兼容
- (type)value
Java局部变量
- 局部变量声明在方法、构造方法、语句块中
- 局部变量在执行完成后就被销毁
- 访问修饰符不能用于局部变量
- 局部变量只在声明它的方法、构造方法、语句块中可见
- 局部变量在栈上分配内存
- 局部变量没有默认值,必须初始化
Java实例变量
- 实例变量声明在一个类中,在方法、构造方法和语句块之外
- 当一个对象被实例化后,每个实例变量的值就跟着确定
- 实例变量在对象创建时创建,在对象销毁时销毁
- 实例变量的值应该至少被一个方法、构造方法、语句块引用
- 实例变量可以声明在使用前或使用后
- 访问修饰符可以修饰实例变量
- 实例变量对于类中的方法、构造方法、语句块都是可见的
- 实例变量具有默认值,在声明时指定,也可在构造方法中指定
- 实例变量可以直接通过变量名访问
Java类变量
- 类变量也叫静态变量,在类中以static关键字声明,必须在方法之外
- 无论一个类创建多少个对象,类变量只有一份
- 静态变量除了被声明为常量之外很少使用
- 静态变量存储在静态区
- 静态变量在第一次被访问时创建,在程序结束时销毁
- 与实例变量具有相似的可见性
- 默认值也和实例变量相似
- 静态变量可通过
类名.静态变量名访问 - 类变量被声明为
public static final类型时,建议大写
Java控制访问修饰符
- default(不写修饰符):同一包内可见
- private:在同一类中可见
- public:对所有类可见
- protected:对同一包内的类和所有子类可见
私有访问修饰符:private
- 被声明为private的方法、变量和构造方法只能被所属的类访问
- 类和接口不能声明为private
- 声明为private的变量只能通过类中公共的getter方法被外部类访问
- private访问修饰符主要用来隐藏类的实现细节和保护类的数据
公有访问修饰符:public
- 被声明为public的类、方法、构造访问、接口可以被任意其他类访问
- 类所有的公有方法和变量都可以被它的子类继承
受保护的访问修饰符:protected
- 子类和父类在同一个包里:变量、方法、构造访问能被其他类访问
- 子类和父类不在一个包里:子类实例可以访问父类继承来的 protected访问,不能访问父类实例的protected方法
- protected可以修饰方法、构造方法、成员变量,不能修饰类(内部类除外)
- 接口、接口成员变量、接口成员方法不能声明为protected
访问控制和继承
- 父类中声明为public的方法,在子类中必须为public
- 父类中声明为protected的方法,在子类中要么是protected,要么是public
- 父类中声明为private的方法,不能被继承
static修饰符
- 声明独立于对象的静态变量,无论这个类被实例化多少份,静态变量只有一份
- 声明独立于对象的静态方法,静态方法不能使用类的非静态变量
final修饰变量
- 变量被final修饰,一旦赋值后,不能重新被赋值
- 被fianl修饰的实例变量必须显示指定初始值
final修饰方法
- 父类中的final方法可以被子类继承,但是不能被重写
- 声明final方法的主要目的是防止这个方法被修改
final类
- final类不能被继承
abstract修饰类:抽象类
- 抽象类不能用老实例化对象
- 声明抽象类的唯一目的是为了将来对这个类进行扩充
- 一个类不能同时被abstract和final修饰
- 如果一个类包含抽象方法,那么这个类一定要声明为抽象类
- 抽象类可以包含抽象方法和非抽象方法
abstract修饰方法:抽象方法
- 抽象方法是一种没有任何实现的方法,该方法的实现由子类提供
- 抽象方法不能声明成final和static
- 任何继承抽象类的子类必须实现父类的所有抽象方法(子类是抽象类除外)
- 抽象类可以不包含抽象方法
- 抽象方法的声明以分号结尾
synchronized修饰符
- synchronized声明的方法在同一时间只能被一个线程访问
transient修饰符
- 序列化的对象包含transient修饰的实例变量时,不会持久化
volatile修饰符
- 每次被线程访问时,都强制从共享内存中重新读取该成员变量的值
- 成员变量发送变化时,会强制线程将变化值写回到共享内存
- 两个不同的线程,看到的线成员变量始终是同一个值
参考
- ^Java入门教程 https://www.runoob.com/java/java-tutorial.html
最后
以上就是奋斗麦片最近收集整理的关于java default修饰符_Java语法入门002的全部内容,更多相关java内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复