你理解的对, 静态变量是共享的, 在整个JVM中只存在一个, 而成员变量是每一个实例所独有的.
成员变量就是供实例自己使用的, 不用多说, 用法很固定.
静态变量根据声明的不同, 功能也不同, 一般的静态变量声明是根据本类实例, 向外提供一些信息的, 这样的静态变量通常声明为public, 以便于和外界交互.
而声明为private的用法就很杂了, 最常见的就是类内的一些并发控制, 还有类内的常变量, 还有尤为重要的单例模式, 都用到的是private 的静态变量.
而在static的声明同时, 声明为final就是常量了, 和C中的const差不多, 用于一些标志位, 和固定的显示用的字符串, 等等
我的理解是变量前加static是类变量,不加static是对象变量。不知道我的理解对不对?
对
当一个对象是这个类所有的实例所共享的时候,用类变量,
如果每个实例的值都可能不同,就用实例变量。
比如说有一个学生类:年龄,姓名是实例变量,因为每个人的年龄,姓名都可能不同;
而生活补贴可以是类变量,每个学生的补贴都是一样的。