java----关键字

 static修饰字段:

使用static关键字修饰一个字段:声明的static变量实际上就是一个全局变量

使用static关键字修饰一个方法:可以直接使用类调用方法,和对象没有关系了

使用static关键字修饰一个类:内部类

如果需要了解跟多static关键字修饰字段,参考我的另一篇博客:https://www.cnblogs.com/yanxiaoge/p/10658660.html

public class Demo {
    public static void main(String[] args){
    System.out.print(Test.name);//一般定义静态字段,最好又类来调用;
  //System.out.print(Test.name1);   //只有定义了静态字段,类才可以直接调用
}
}
 
class Test{
   String name1 = "dddsdfsd";
       static String name = "dd";
    
}

  

 static修饰方法:

public class Demo {
    public static void main(String[] args){
    Test.setCountry("中国");
    
    Test h = new Test();
    System.out.print(h.country);
    }
}
class Test{
	static String country;
	public static void setCountry(String country){ //静态方法只能访问静态字段;不能访问非静态字段
		Test.country = country;
	} 
}

  

 final:

private static final int NUM = 10;  //final表示该字段为常量,通常全部大写

final 修饰一个类,则该类不能被继承;final不可以修饰抽象类和接口

final 修饰一个方法,该方法只能继承,不能重写

常量类

public class Demo {
    public static void main(String[] args){
        Person person = new Person(11);

    }
}

class Constant{  //将常量专门放在一个类中,让其他的类继承他[常量不一定必须初始化,可以在构造器中默认赋值(如果采用这种方法给常量赋值,常量不能用static修饰)]
    public static final int NUM = 10;  //加上static,目的不用创建了对象,就可以直接调用常量;

}

class Person extends Constant{
    private final int NUM;
    public Person(int id){
    NUM = id;          //在构造器中的初始化
    }

    {
        System.out.println(Constant.NUM);
    }
}

  

 volatile:

volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,但是注意 volatile不能确保原子性,在访问volatile变量时,不会执行加锁操作,因此也就不会执行线程阻塞。所以volatile变量是一种比sychhronized关键字更轻量级的同步机制。

原子性:原子性就是指该操作是不可再分的。不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。简而言之,在整个操作过程中不会被线程调度器中断的操作,都可认为是原子性。比如 a = 1;

volatile的适用场景:

  1、对变量的写入操作不依赖其当前值(如 number++ 、count = count * 5等)

  2、该变量没有包含在具有其它变量的不变式中

 

参考:https://www.cnblogs.com/xuwenjin/p/9051179.html

https://www.cnblogs.com/chengxiao/p/6528109.html

 

补充可以看看CAS:https://blog.youkuaiyun.com/v123411739/article/details/79561458

 

转载于:https://www.cnblogs.com/yanxiaoge/p/10658582.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值