java中静态变量和非静态变量的区别

如题所述

静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-08-13
区别最大就是是否要实例化

~
~
~
~

java中静态变量和非静态变量是怎么区分的?
全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件...

java中静态方法与非静态方法的区别
Java中静态方法与非静态方法的区别:1. 方法定义与调用方式:静态方法使用`static`关键字定义,可以通过类名直接调用,无需创建类的实例。非静态方法则需要在创建类的对象后才能通过对象来调用。2. 访问特点:静态方法不能直接访问非静态变量或非静态方法,因为这些需要依赖具体的对象,而静态方法是在类加...

java静态方法与非静态方法有什么区别
1、静态方法属于类所有,类实例化前即可使用;2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员;3、因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存;4、static内部只能出现static变量和其他static方法!而且static方法中还不能使用this等关键字,...

java里static变量和非static变量有什么区别
也就是说当声明一个对象是,并不产生static变量的拷贝,而是该类所有的实例对象共用同一个static变量。4.非static修饰的成员变量是在对象new出来的时候划分存储空间,是与具体的对象绑定的,该成员变量仅为当前对象所拥有的。5.对象在引用成员变量是直接通过类名.变量名调用,对象在引用实例变量时只能通过...

静态方法和非静态方法的区别是什么
一、定义上的区别 静态方法是属于类的,而非静态方法是属于类的实例的。静态方法不依赖于对象实例,可以直接通过类名来调用;非静态方法则需要通过创建类的对象来调用。二、内存上的区别 静态方法存在于Java的静态存储区,非静态方法存在于Java的堆内存中。由于静态方法不依赖于对象实例,所以在程序启动...

静态变量与非静态变量的区别
1、存储位置不同 静态变量:存储在全局数据区(静态数据区)。非静态变量叫动态变量:存储在内存出栈数据区。2、生命期不同 动态变量:根据你定义的位置确定,比如你在一个函数中定义的,那么超出该函数范围变量将失效。静态变量:程序结束时才释放。3、作用域不同 动态变量:同样的要根据你定义的位置...

静态成员变量静态变量与非静态变量
数据成员在编程中通常分为静态变量和非静态变量两种类型。静态变量,即在类中添加了"static"修饰符的成员,它们存在于类的内存空间中,可以直接通过"类名.静态成员名"的方式进行访问。与非静态成员不同,静态成员在类被创建后就分配了内存,无需实例化对象,因此无法访问非静态成员。反之,非静态成员需要...

java 静态类和非静态类的区别
主要区别在于静态类不能实例化,静态类编译器能够执行检查确保不是偶然的添加实例成员,C#编译器会自动把它标记为sealed,静态类中不能创建非静态的方法,即静态方法中只能创建静态方法,但在非静态类中可以调用静态方法。静态类的主要特性:1:仅包含静态成员。2:无法实例化。3:是密封的。4:不能包含...

java static成员变量方法和非static成员变量方法的区别
静态成员变量是全类共享的,即使不是对象,也可以调用,并且内存不变;普通成员变量是每个对象单独享用的,就是说你这个对象有一个int i=1,我再给该类创建一个新的对象,他也有一个int i,但他可以不等于1,可以等于5,也可以等于10,但无论等于多少,都不会影响之前对象的i的值,而静态成员变量...

java静态类和非静态类的区别?
区别:(1)内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。(2)非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。(3)一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据...

相似回答