本文主要说明一下概念
1.静态变量
2.静态常量
3.成员变量
4.类变量
5.实例变量
6.局部变量
7.常量
关系图
成员变量和局部变量相对
成员变量:直接声明在类中的变量, 就是成员变量
局部变量: 声明在方法内部, 或者形参中,亦或者代码块中的变量
其中成员变量包括两个变量:
1..实例变量
2..类变量(又叫静态变量)
然后就是常量,静态变量和静态常量的区别:
1.常量是用final修饰的
2.静态变量是用static修饰的
3.静态常量是用final static共同修饰的
成员变量之间的关系
对于三个成员变量,分别为类变量、成员变量和局部变量
public class Test01 {
private static int a=10; //类变量
private int b = 10; //实例变量
public static void main(String[] args) {
int c=10; //局部变量
}
}
这里要注意,静态方法中的局部变量只是静态方法中的局部变量.它们不是静态的,它们不是特别的.
基本数据类型的值直接存放在栈中
这里我们就要剖析一下JVM栈的知识了,可以戳这篇文章
public class Test01 {
private static int a=10; //类变量
private int b = 10; //实例变量
public static void main(String[] args) {
int c=10; //局部变量
}
}
这里要注意,静态方法中的局部变量只是静态方法中的局部变量.它们不是静态的,它们不是特别的.
类变量(静态变量):随着类加载的初始化,把值放在堆(方法区)中,该对象全部对象共用
实例变量:随着对象的简历,也是把值放在堆中,但是是每一个对象私有的
局部变量:运行时,随着方法入栈,而建立在栈中,随着方法的出栈而消亡
注意:这只是建立在对象的基础上
对于八大数据类型来说
成员变量的基本数据类型是存在方法区的常量池里
局部变量的基本数据类型是存在栈内存的常量池里
常量,静态变量和静态常量的关系
public class Test01 {
private static int a = 10; //静态变量
private static final int b=10; //静态常量
private final int c=10; //常量
}
具体的关系可以看这篇文章