A.a,A.b,A.c的时候就已经初始化了,即使你没有new A,而当你B类中使用完毕之后,再new A对象,数值肯定还存在,因为静态变量是全局的,而且只有一份,所以对象共用,所以不需要重新初始化了,静态变量的改变是程序运行的时间内是永久生效的。
静态变量在定义的时候就已经初始化了 如果没有赋值 那就是默认值 int的话就是0 对象就是null
静态变量是属于类本身的 不属于具体的某一个对象 所有类的实例都会公用这些静态变量
所以就算你new A对象这个对象的静态变量的值还是之前值
对于静态变量和方法,JAVA虚拟机会专门开辟一段内存空间来储存。
B类使用A类的静态变量后,静态变量是已初始化了,new A对象,对静态区无影响,静态变量的值还是存在的,只要JVM不关,静态变量是永久生效的
补充:这个静态变量当被改变时将全局都被改变。当类被销毁后就没了。不是永久的。
建议看看变量的作用范围。
已经初始化了,在类A加载时候就初始化了,而且只有一份值!