java中,静态字段和实例字段有什么区别?

有几个问题想问问大家
1、凡是声明在方法、构造方法、代码块外的变量或者常量都叫做字段,对吗?
2、静态字段和实例字段有什么区别?
3、实例变量也叫成员变量,静态变量也叫类变量,对吗?
4、实例变量在jvm运行时会被放在主存中,然后工作线程拷贝一份副本过去,对吗?
5、因为4,所以就会产生线程是否安全的问题,对吗?
6、是不是所有类的实例变量都会被放在主存中呢,如果对实例变量声明private,那么
能防止别的线程使用这个实例变量吗?还会产生线程安全吗?
7、单实例多线程并发访问,就像servlet的访问一样,多线程是不是都要等待这个实例被
其他线程使用完才能使用呢?

如果时间不足,可以随意提示一点tip给我,哪怕只是只言片语,先谢谢大家的不吝赐教!


千巷猫影
浏览 2483回答 2
2回答

回首忆惘然

实例字段要实例化才能使用,没有实例化不能使用。静态字段反之普通字段要在实例化时候才分配内存空间,而静态字段在装载程序集的时候就分配内存空间了

冉冉说

字段是什么?从学JAVA开始就没听说过叫字段的说法。。。。。你要么叫变量,要么叫属性,我暂且理解你说的字段就是变量,静态变量和实例变量,语法区别:静态变量需要static关键字修饰,实例变量不需要。程序运行时的区别:静态变量从属于类,实例变量从属于对象。  实例变量必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量;  静态变量即类别量,只要程序加载了类的字节码,静态变量就会被分配空间,即可使用。综上,实例变量必须创建对象后通过这个对象来使用,静态变量可以直接使用类名来引用你先搞清楚实例变量的声明周期自然就知道了jvm的原理跟线程问题多线程不需要等待实例用完,多线程跟实例用不用完没什么关系new几个对象就会在内存中分配几个空间,堆和栈的关系你去搞清楚
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java