堆栈的内容------全局变量(实例变量)---静态变量等等

博客园的:https://www.cnblogs.com/Fanzifeng/p/7181980.html

   全局变量包含实例变量(可以赋值也可以不赋值)和静态变量
  
  • 实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰。
  •  静态变量位于方法区,只有一份,在类加载完毕后,静态变量就存在了,静态变量属于类
jdk7之前字符串常量池在方法区里面,字符串常量池以前在方法区里面,后来换到堆里面了 ,是字符串常量池放到了堆里面
 静态变量在方法区
 方法区一直有
 --------------------代码----------------------------------------

/*
* 静态变量存在方法去
*/
public class TestStatic01 {
public static void main(String[] args) {

// 静态变量:类名.静态变量名方式直接访问静态变量

StaticValue st = new StaticValue();
// 非静态变量必须创建对象才能调用
st.a = 55;
// 静态变量调用
StaticValue.b=33;
/*
* 创建一个对象
*/
StaticValue staticValue = new StaticValue();

staticValue.a = 222;
StaticValue.b=99;
System.out.println("st中a的值:"+st.a);
System.out.println("静态中b的值:"+StaticValue.b);
System.out.println("动态staticValue中a的值:"+staticValue.a);
System.out.println("静态staticValue中b的值:"+StaticValue.b);
}
}

class StaticValue {
/*
* 全局变量包含:1.实例变量2.静态变量
*/
// 实力变量可以赋值也可以不赋值
int a = 2;
// 静态变量在类加载完毕后就存在的堆区,只有一份,静态变量属于类
static int b;

// 成员变量中不能定义静态变量
public void method() {
// static int c=2;
double c = 2.5;

}

}

------------结果--------------

st中a的值:55
静态中b的值:99
动态staticValue中a的值:222
静态staticValue中b的值:99

原文地址:https://www.cnblogs.com/Koma-vv/p/9504869.html