Java 语法(关键词 ) java基础
程序员文章站
2022-04-08 13:53:43
...
一、static关键字
static 特点:
1、随着类的加载而加载
也就是说:静态会随着类的消失而消失,说明他的生命周期最长
2、优先于对象存在
3、被所有对象所共享
4、可以直接被类名调用
static 用法:
1、修饰变量
实例实例变量与类变量对比:
实例变量是随着对象的创建而存在堆内存中;实例变量随着对象的消失而消失
类变量随着类的加载而存在于方法区中;类变量生命周期最长,随着类的消失而消失
2、修饰方法
静态方法只能访问静态成员
静态方法中不可以定义this,super关键字
this代表的是调用这个函数的对象的引用,指向本类已经创建的对象,super代表对父类对象的引用,静态方法优先于对象存在,所以静态方法中不能使用this、super
3、修饰代码块
随着类的加载而执行,只执行一次。用于给类进行初始化。
4、静态内部类
可访问外部类的静态成员和静态方法
5、静态导入
import static java.lang.System.out;
import static java.lang.Integer.*;
二、transient关键字
transient声明一个实例变量,用transient关键字标记的成员变量不参与序列化过程,
对象序列化时,该变量不会持久化存储。
三、volatile关键字
volatile声明简单类型变量,一个变量经 volatile修饰后在所有线程中必须是同步的;任何线程中改变了它的值,所有其他线程立即获取到了相同的值。但是,变量的值必须和自身上一个值无关。
四、synchronized关键字
synchronized(类/对象)或者修饰方法和代码块 加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。
对象锁:当一个对象在不同的线程中执行这个同步方法时,他们之间会形成互斥,达到同步的效果。
同步块:当没有明确的对象作为锁,只是想让一段代码同步时,能够创建一个特别的instance变量(他得是个对象)来充当锁:
private byte[] lock = new byte[0];
Public void method(){
synchronized(lock)
{
//
}
}
五、strictfp 关键字
strictfp 关键字可应用于类、接口或方法。当对一个类、接口或方法使用 strictfp 关键字时,该类、接口或方法中的所有代码,包括嵌套类型中的float和double初始设定值和代码,都将严格地进行计算。
static 特点:
1、随着类的加载而加载
也就是说:静态会随着类的消失而消失,说明他的生命周期最长
2、优先于对象存在
3、被所有对象所共享
4、可以直接被类名调用
static 用法:
1、修饰变量
实例实例变量与类变量对比:
实例变量是随着对象的创建而存在堆内存中;实例变量随着对象的消失而消失
类变量随着类的加载而存在于方法区中;类变量生命周期最长,随着类的消失而消失
2、修饰方法
静态方法只能访问静态成员
静态方法中不可以定义this,super关键字
this代表的是调用这个函数的对象的引用,指向本类已经创建的对象,super代表对父类对象的引用,静态方法优先于对象存在,所以静态方法中不能使用this、super
3、修饰代码块
随着类的加载而执行,只执行一次。用于给类进行初始化。
4、静态内部类
可访问外部类的静态成员和静态方法
5、静态导入
import static java.lang.System.out;
import static java.lang.Integer.*;
二、transient关键字
transient声明一个实例变量,用transient关键字标记的成员变量不参与序列化过程,
对象序列化时,该变量不会持久化存储。
三、volatile关键字
volatile声明简单类型变量,一个变量经 volatile修饰后在所有线程中必须是同步的;任何线程中改变了它的值,所有其他线程立即获取到了相同的值。但是,变量的值必须和自身上一个值无关。
四、synchronized关键字
synchronized(类/对象)或者修饰方法和代码块 加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。
对象锁:当一个对象在不同的线程中执行这个同步方法时,他们之间会形成互斥,达到同步的效果。
同步块:当没有明确的对象作为锁,只是想让一段代码同步时,能够创建一个特别的instance变量(他得是个对象)来充当锁:
private byte[] lock = new byte[0];
Public void method(){
synchronized(lock)
{
//
}
}
五、strictfp 关键字
strictfp 关键字可应用于类、接口或方法。当对一个类、接口或方法使用 strictfp 关键字时,该类、接口或方法中的所有代码,包括嵌套类型中的float和double初始设定值和代码,都将严格地进行计算。