Java关键字static

Java关键字static


static表示静态的或者全局的,只能用来修饰变量、方法或方法块。它表示被修饰的内容在一定范围内是可以共享的。

  1. static修饰变量
    static修饰的变量如果权限为public,表示该变量是所有类共享的,不用初始化该类就能被其他类访问(类名.变量名)。静态变量只会初始化一次,一旦初始化完成无论该类被new出多少对象,静态变量都不会再进行初始化。
    static修饰的变量如果被多个线程同时访问就有可能会出现线程安全问题,如果遇到线程安全问题,可以通过加锁的方式解决。如果静态变量是ArrayList这种非线程安全的集合类型,也可以通过使用线程安全的集合类型代替的方式来解决如:CopyOnWriteArrayList。
  2. static修饰方法
    static修饰方法经常见于各种工具类中,表示该方法可以被其他类直接调用(类名.方法名),调用起来十分方便。
    static修饰的方法只能调用同样被static修饰的方法,使用共享的变量时变量也必须由static来修饰。否则编译报错。
    static方法内部变量是线程安全的,因为方法的数据存储于栈内,方法栈是线程隔离的,所以不会出现线程安全问题。
  3. static修饰方法块
    static修饰的方法块又叫静态块,静态块常用来做一些类加载前的准备工作,如一些变量的初始化,再例如Long中缓存的初始化就是静态块来完成的。静态块中使用的共享变量也同样是要用static来修饰并且必须位于静态块定义之前,否则编译报错。
  4. static修饰内容的初始化
    顺序:
    父类静态变量——>父类静态块——>子类静态变量——>子类静态块——>父类构造器——>子类构造器
Java 中,static 是一个关键字,它可以用来修饰类、方法和变量。这里将详细介绍 static 的用法。 1. 修饰类 当 static 修饰一个类时,它意味着这个类是静态的,也就是说,这个类的所有成员都是静态的,包括它的成员变量和成员方法。这意味着,你可以在不创建类的实例的情况下,直接访问这个类的成员变量和成员方法。例如: ``` public class MyClass { public static int myStaticVariable = 10; public static void myStaticMethod() { System.out.println("This is a static method."); } } // 访问静态变量和静态方法 int x = MyClass.myStaticVariable; MyClass.myStaticMethod(); ``` 2. 修饰方法 当 static 修饰一个方法时,它意味着这个方法是静态的,也就是说,这个方法属于类而不是属于实例。这意味着,你可以在不创建类的实例的情况下,直接调用这个方法。例如: ``` public class MyClass { public static void myStaticMethod() { System.out.println("This is a static method."); } } // 调用静态方法 MyClass.myStaticMethod(); ``` 3. 修饰变量 当 static 修饰一个变量时,它意味着这个变量是静态的,也就是说,这个变量属于类而不是属于实例。这意味着,所有这个类的实例都共享这个变量,也就是说,如果你修改了这个变量的值,那么所有实例都会受到影响。例如: ``` public class MyClass { public static int myStaticVariable = 10; } // 修改静态变量的值 MyClass.myStaticVariable = 20; ``` 总之,static 关键字主要用于在类级别上创建变量和方法。它可以让你在不创建类的实例的情况下,直接访问类的成员变量和成员方法,或者在类的实例之间共享变量。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值