类变量也叫静态变量,也就是在变量前加了static 的变量;
实例变量也叫对象变量,即没加static 的变量;
区别在于:
类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
调用
类变量可以用对象和类名调用;实例变量只能用对象调用;
存储
类变量存储与方法区的常量池;而实例变量存储于堆
ps:基本类型存储于栈
初始化
类变量和实例变量都默认初始化;string默认初始化为null;int初始化0;Integer初始化为null;即非基本类型默认初始化都为null
局部变量(方法内)必须初始化
例:
1 2 3 4 | class person{ static String age; //--类变量 public String name= "李四" ; //--实例变量 } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class ClassJava{ public static void main(String[] args){ person A= new person(); A.age= "10" ; A.name= "张三" ; System.out.println(A.age); //-结果为"10" System.out.println(A.name); //-结果为"张三" person B= new person(); //类变量是针对所有对象的,所以A改变age,B的age也改变 System.out.println(B.age); //-结果为"10" //实例只改变自身的,所以A对象的name改变,不影响对象B的name变量 System.out.println(B.name); //-结果仍为"李四" } } |
![](https://i-blog.csdnimg.cn/blog_migrate/39194f0d583d46bc715268ee3ab07164.png)