一个关于java静态成员变量初始化的问题,目前有两个类,分别是A和B。
假如A中有三个静态变量a,b,c,我在B类中使用A.a,A.b,A.c,对他们进行了赋值。而我又没有newA对象,那么该静态变量是否已经初始化了。也就是说B类中使用完毕之...
假如A中有三个静态变量a,b,c,我在B类中使用A.a,A.b,A.c,对他们进行了赋值。而我又没有new A对象,那么该静态变量是否已经初始化了。也就是说B类中使用完毕之后,再new A对象,那些数值还存在吗?还需要重新初始化吗?如果不用的话,那么该静态变量的改变是永久生效的吗?
展开
展开全部
静态变量在定义的时候就已经初始化了 如果没有赋值 那就是默认值 int的话就是0 对象就是null
静态变量是属于类本身的 不属于具体的某一个对象 所有类的实例都会公用这些静态变量
所以就算你new A对象这个对象的静态变量的值还是之前值
静态变量是属于类本身的 不属于具体的某一个对象 所有类的实例都会公用这些静态变量
所以就算你new A对象这个对象的静态变量的值还是之前值
追问
其实你们都回答的很好,但答案只能给一个人了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于静态变量和方法,JAVA虚拟机会专门开辟一段内存空间来储存。
B类使用A类的静态变量后,静态变量是已初始化了,new A对象,对静态区无影响,静态变量的值还是存在的,只要JVM不关,静态变量是永久生效的
B类使用A类的静态变量后,静态变量是已初始化了,new A对象,对静态区无影响,静态变量的值还是存在的,只要JVM不关,静态变量是永久生效的
追问
其实你们都回答的很好,但答案只能给一个人了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-08-08
展开全部
补充:这个静态变量当被改变时将全局都被改变。当类被销毁后就没了。不是永久的。
建议看看变量的作用范围。
建议看看变量的作用范围。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已经初始化了,在类A加载时候就初始化了,而且只有一份值!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询