java 中static修饰的变量的问题
答案:3 悬赏:40
解决时间 2021-02-22 13:02
- 提问者网友:难遇难求
- 2021-02-21 14:39
java 中static修饰的变量的问题
最佳答案
- 二级知识专家网友:轮獄道
- 2021-02-21 15:37
static变量存在的意义就是不需要实例化某个类就可以调用
类的加载是由第一次调用该类的static变量触发的而不是相反(这里仅讨论static变量和类的加载),所以说如果你不调static变量那这个类就不会被加载,变量也不会存在,没load的东西根本谈不到内存占用。static修饰过多我认为理论上是存在内存占用的问题,但问题是static变量并不会随着你不断的创建新对象而增多,因为它在变量被正式创建之前就存在了,你一个系统才能有几个static变量啊,能建上哪怕超过一千个都很火星了。
类的加载是由第一次调用该类的static变量触发的而不是相反(这里仅讨论static变量和类的加载),所以说如果你不调static变量那这个类就不会被加载,变量也不会存在,没load的东西根本谈不到内存占用。static修饰过多我认为理论上是存在内存占用的问题,但问题是static变量并不会随着你不断的创建新对象而增多,因为它在变量被正式创建之前就存在了,你一个系统才能有几个static变量啊,能建上哪怕超过一千个都很火星了。
全部回答
- 1楼网友:封刀令
- 2021-02-21 17:51
static 是java的关键字,也是一个修饰静态的关键字,使用这个关键字修饰的变量或者是方法,都可以直接通过类名进行调用,比如这样:
public class a{
static int a=10;
}
class b{
int b=a.a;//因为a类的整型变量是用static修饰,所以可以通过类名来调用
}
这样子有一个好处,就是不用对一个类进行new ,这样可以为内存节省很多空间,凡是被static修饰的变量叫成员变量,成员变量也就是所谓的全局变量,被static修饰的方法叫成员方法。
请参考
public class a{
static int a=10;
}
class b{
int b=a.a;//因为a类的整型变量是用static修饰,所以可以通过类名来调用
}
这样子有一个好处,就是不用对一个类进行new ,这样可以为内存节省很多空间,凡是被static修饰的变量叫成员变量,成员变量也就是所谓的全局变量,被static修饰的方法叫成员方法。
请参考
- 2楼网友:躲不过心动
- 2021-02-21 16:42
static变量和他所属类的生命周期一致
类加载的时候创建
StaticObject so = null;
在执行以上语句的时候,不会发生类加载,所以其static变量也不存在,
static修饰变量的多少,取决于实际变量代表的意义
比如,把老板的名字设置为static变量应该是可以的,因为很多的员工都会去访问这个名字,但是把某一个员工的名字设置为static的,就需要考虑考虑
static变量放在数据区中,不是在栈中
类加载的时候创建
StaticObject so = null;
在执行以上语句的时候,不会发生类加载,所以其static变量也不存在,
static修饰变量的多少,取决于实际变量代表的意义
比如,把老板的名字设置为static变量应该是可以的,因为很多的员工都会去访问这个名字,但是把某一个员工的名字设置为static的,就需要考虑考虑
static变量放在数据区中,不是在栈中
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |