Java中静态变量和实例变量的区别和应用场合问题

2024-12-02 18:09:23
推荐回答(2个)
回答1:

你理解的对, 静态变量是共享的, 在整个JVM中只存在一个, 而成员变量是每一个实例所独有的.

成员变量就是供实例自己使用的, 不用多说, 用法很固定.

静态变量根据声明的不同, 功能也不同, 一般的静态变量声明是根据本类实例, 向外提供一些信息的, 这样的静态变量通常声明为public, 以便于和外界交互.

而声明为private的用法就很杂了, 最常见的就是类内的一些并发控制, 还有类内的常变量, 还有尤为重要的单例模式, 都用到的是private 的静态变量.

而在static的声明同时, 声明为final就是常量了, 和C中的const差不多, 用于一些标志位, 和固定的显示用的字符串, 等等

回答2:

我的理解是变量前加static是类变量,不加static是对象变量。不知道我的理解对不对?



当一个对象是这个类所有的实例所共享的时候,用类变量,
如果每个实例的值都可能不同,就用实例变量。

比如说有一个学生类:年龄,姓名是实例变量,因为每个人的年龄,姓名都可能不同;

而生活补贴可以是类变量,每个学生的补贴都是一样的。