Java静态变量笔记

前言

    在Java中,静态变量是使用关键字`static`修饰的变量,也称为类变量。本文总结一些静态变量的知识点,方便大家温习。

static String baby = "hello world";

综合知识点

1. 静态变量是独立于任何对象的,因此可以直接通过类名访问,例如`ClassName.staticVariable`,属于类,与对象无关,所以所有对象共享静态变量。

2. 静态变量在类被加载时初始化,它的生命周期与类相同,当类被卸载时静态变量也会被销毁。

3. 静态变量在内存中的位置是在方法区(Method Area)中,而不是在堆(Heap)中。

4. 静态变量通常用于表示类级别的属性或共享的常量,比如`Math.PI`就是一个常用的静态变量示例。

5. 静态变量可以被所有对象实例共享,因此当一个对象对静态变量进行修改时,其他对象访问的是同一个静态变量,所以也会受到影响。

6. 静态变量的值在整个程序运行期间保持不变,除非显式地进行修改。

什么时候用静态变量?

1. **常量**

如果一个变量的值在整个程序中都是固定不变的,可以使用静态变量来表示常量。
```java
public static final int MAX_COUNT = 100;
```

2. **所有对象共享数据**

如果某个数据是所有实例共享的,可使用静态变量
```java
public static int instanceCount = 0;
```

3. **工具类**:静态变量可以用在工具类中,保存工具类的状态或配置信息
```java
public static final String DEFAULT_ENCODING = "UTF-8";
```

4. **单例模式**:在单例模式中,静态变量用来保存单例对象的引用。
```java
private static Singleton instance;
```

注意事项

静态变量在内存中会一直存在直到程序结束,因此过度使用静态变量可能导致内存占用过高,甚至可能引起内存泄漏问题。因此,在使用静态变量时要慎重考虑其生命周期和作用域。比如你创建了1000个对象,都使用静态变量引用。。。。。。。

GPT给的建议

1. 静态变量称为类变量,它被所有类的实例所共享
2. 静态变量在类加载时被初始化,只会在类加载的时候初始化一次
3. 静态变量可以通过类名直接访问,无需创建类的实例,当然也能通过对象访问
4. 静态变量存储在方法区中,而不是在堆内存中(指虚拟机内存区域)
5. 静态变量使用全大写字母命名,方便的与实例变量区分
6. 静态变量值可在类的生命周期内被修改,不推荐频繁修改
7. 静态变量用于实现常量,例如 Math.PI 是一个常量静态变量
8. 静态变量用于共享数据,比如计数器或者共享的配置信息

总结

1、静态变量,可以用,但是不要滥用

2、当所有对象共享同一份数据,建议用静态变量,比如有个Person类,统计总人口

class Person {

    public static int TOTAL = 0;

}

3、静态变量占用的内存空间,随着类的生命周期在一起,这点尤其注意,滥用静态变量,会把你的内存撑爆了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值