java静态变量
‘壹’ java的静态变量 static
1.首先你 for (i = 0; i < 3; i++) 里的i就是那个静态的i了 你把i=0了 于是静态的i就变成0了 于是执行完循环i就变成3了
2.你的for循环并没有定义局部的i 亲
把那个for循环改成for ( int i = 0; i < 3; i++)
就可以了
‘贰’ 有关java静态变量的访问
Java中静态变量是指用static修饰的变量,这个是属于类的,是这个类或所有属于这个类的实例对象所共有共享的,所以你这两种调用都一样的
‘叁’ java静态变量只有一份变量是什么意思
说通俗点,你可以这样想,类其实就是一个模板,而对象就是由这个模板拷贝出来的。
在由类创建对象时,就是把类中的所有非静态变量都拷贝给了创建的对象,这些非静态变量都存储在所创建对象的内存空间中,但在这个过程中静态变量是不会拷贝给对象的。
明白了吧,也就是说用类创建对象时,所有的变量都拷贝一份给了对象,但只有静态变量是不会拷贝给对象的,它是存储在类的空间中,所有对象可以用它,但用的是同一个静态变量,这个静态变量只在类的空间中保存了一份。
至于为什么只初始化一次,那是因为静态变量只在类的空间中保存了一份,它是属于类的,当你第一次加载类的时候,静态变量就会随着一起加载,再往后即便你创建对象了,由于创建时根本就没把静态变量拷贝给对象,当然这个变量也就只初始化一次了。
其实只要你能明白静态变量和类的关系,这些问题就没什么好说的。看在我打了这么多字的份上,也该给俺分了吧,嘿嘿!
‘肆’ java中一个类中的静态变量有什么用
静态变量有什么用,那就把和成员变量的区别告诉你。
静态变量用static修饰:附属于类
而成员变量是附属于对象的。
具体反应在 每个对象有各自的成员变量,但是他们共享静态变量。所以静态变量相当于是大家的共有资源。
再调用方法上。静态变量可以通过类名或者对象名访问,而成员变量只能通过对象名。
因为静态变量是类编译完成后就分配了内存空间,所以不用创建对象也可以访问。
而成员变量必须在构造对象以后才会分配内存空间,只能通过对象名访问。
‘伍’ java 类变量 静态变量
publicclassDemo
{
privateinta;//实例变量
privatestaticinta;//静态变量(也叫类变量)
publicvoidfun1(){
//这个是实例方法
}
publicvoidstaticfun2(){
//这个是静态方法(类方法)
}
}
publicstaticvoidmain(String[]args){
//这里调用实例方法
Demodemo=newDemo();
demo.fun1();
//这里调用静态方法
Demo.fun2();
}
‘陆’ java如何存取静态变量
无论是静态的属性和方法都可以使用 类名.属性名或类名.方法名这样的方式进行直接调用。当然由于一般 属性和方法的调用也是可以的哦。
‘柒’ Java中静态常量和静态变量的区别
静态变量是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由static加以定义后才能成为静态外部变量,或称静态全局变量。
对于自动变量,它属于动态存储方式。但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。由此看来,一个变量可由static进行再说明,并改变其原有的存储方式。
而在以Pascal为代表的许多程序语言中,所有局部变量都由系统自动分配存储空间,而所有全局变量的存储空间则以静态分配的方式获取,因此由于实际上“局部变量”和“全局变量”这两个术语已足以涵盖所有的情况,在这些程序语言中通常不使用“静态变量”这一术语,而直接以“全局变量”代之。
在这些程序语言中,静态变量就是全局变量,而即使在有明确区分全局和静态变量的程序语言中,在编译后的代码里二者也以相同的方式获取存储空间。而今术语“静态变量”的概念则主要基于C族语言的“static”的定义。
静态变量也可以用于存储常数。具体来说,静态变量可用const,constant或final等关键字标识,这时其值就会在编译时设定,并且无法在运行时改变。编译器通常将静态常量与文本一起置于目标文件的文本区域,而非常量初始化数据则置于数据区。
‘捌’ java中静态变量和静态方法的优缺点
java 里的静态可以说就是全局变量,它是属于类的,类存在它就已经存在了,方法也是一样,静态方法里面使用到的外部变量只能是静态变量,想想就知道了.
但是不要随便定义成静态方法, 因为静态方法内部只能使用静态变量,而静态变量是属于类的, 如果都是静态方法那么这个类就没有实力化的必要.所以一般的工具类才使用较多的静态方法
‘玖’ java静态变量的基本介绍
1·、static应用范围:可用于内部类、方法和变量。
2、标记一个方法为static,意味着这个方法,被所在类的所有实例公用,在类装载时被首先执行,执行一次即被所有该类的实例共享,同时意味着:
A、static方法内部不能引用非static变量。
B、static方法不能被子类重写为非static方法。
C、父类的非static方法不能被子类重写为static方法。
D、static代码块可以用static {}来完成,在类被第一次装载时执行初始化,先于静态方法和其他方法的执行。
3、标记一个变量为static,则该变量在内存中有不变的位置,相当于全局变量,所有类的实例都访问同一个存储变量区域。对其修改对于所有类的实例来说都是可见和一致的。
‘拾’ 在Java中,到底什么是静态变量呢
答:在程序开发时,我们经常希望一个变量和方法不随对象的改变而改变,甚至在没有创建对象时也能访问数据和方法,这时就可以在数据和方法上加上Static关键字,被Static修饰的数据就叫做静态变量(数据)而方法就叫静态方法。静态变量在内存中的地址是相同的,所以对于同一类的不同对象,它们静态变量的值肯定是相同的。