本文目录一览:
- 1、java中一个类中的静态变量有什么用
- 2、在Java中,到底什么是静态变量呢?
- 3、java中静态变量的默认值是0?
- 4、java静态变量的与实例变量的区别
- 5、java动态变量和静态变量有什么联系
java中一个类中的静态变量有什么用
静态变量有什么用,那就把和成员变量的区别告诉你。
静态变量用static修饰:附属于类
而成员变量是附属于对象的。
具体反应在 每个对象有各自的成员变量,但是他们共享静态变量。所以静态变量相当于是大家的共有资源。
再调用方法上。静态变量可以通过类名或者对象名访问,而成员变量只能通过对象名。
因为静态变量是类编译完成后就分配了内存空间,所以不用创建对象也可以访问。
而成员变量必须在构造对象以后才会分配内存空间,只能通过对象名访问。
在Java中,到底什么是静态变量呢?
答:在程序开发时,我们经常希望一个变量和方法不随对象的改变而改变,甚至在没有创建对象时也能访问数据和方法,这时就可以在数据和方法上加上Static关键字,被Static修饰的数据就叫做静态变量(数据)而方法就叫静态方法。静态变量在内存中的地址是相同的,所以对于同一类的不同对象,它们静态变量的值肯定是相同的。
java中静态变量的默认值是0?
1、首先局部变量在类体中,一般是最先定义的,而局部变量是在方法或各种其他语句中,
2、而方法可以同时调用成员变量和局部变量。这里以方法F()为例。
3、如果方法中的局部变量的名字和成员变量的名字相同,那么方法就会隐藏成员变量,在方法进行操作时采用局部变量。
4、而如果想使用隐藏的成员变量值,那么只需添加this.成员变量即可实现其值调用。
5、局部变量没有默认值。如果在使用局部变量时不为其赋值,那么在编译的时候就会出现错误,这是因为方法在使用局部变量时不会为其赋初值,而相反,成员变量如果没有赋值,系统会为其自动设定默认值0。
java静态变量的与实例变量的区别
java类的成员变量有俩种:一种是被static关键字修饰的变量,叫类变量或者静态变量;另一种没有static修饰,为实例变量。
1、在语法定义上的区别:
静态变量前要加static关键字,而实例变量前则不加。
2、在程序运行时的区别:
实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
举例说明:
对于下面的程序,无论创建多少个实例对象,永远都只分配了一个staticVar变量,并且每创建一个实例对象,这个staticVar 就会加1;但是,每创建一个实例对象,就会分配一个instanceVar,即可能分配多个instanceVar,并且每个instanceVar的值都只自加了1次。
类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。
而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。
结果为:
1
0 (成员变量具有缺省值 而局部变量则没有)
把代码改为:
结果则为:
1
java动态变量和静态变量有什么联系
java成员变量和静态变量的区别:
1,成员变量所属于对象。所以也称为实例变量。
静态变量所属于类。所以也称为类变量。
2,成员变量存在于堆内存中。
静态变量存在于方法区中。
3,成员变量随着对象创建而存在。随着对象被回收而消失。
静态变量随着类的加载而存在。随着类的消失而消失。
4,成员变量只能被对象所调用
。
静态变量可以被对象调用,也可以被类名调用。
所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。