java静态变量与实例变量的区别

问题描述:静态变量和实例变量的区别? 本篇文章给大家谈谈关于实例变量静态变量实例方法和静态方法,以及简述静态成员变量与实例成员变量的区别,希望对各位有所帮助,不要忘了收藏本站喔。

Java中局部变量,静态变量和实例变量的区别

java静态变量与实例变量的区别的相关图片

静态变量:独立存在的变量,只是位置放在某个类下,可以直接类名加点调用静态变量名使用。并且是项目或程序一启动运行到该类时就直接常驻内存。不需要初始化类再调用该变量。用关键字static声明。静态方法也是同样,可以直接调用。

实例变量:就是相当于该类的属性,需要先初始化该类,就是new 该类后,才可以调用。但是该类未被再次使用,被垃圾回收器回收后,该实例也将不存在了,就是不在内存中了。

区别如下:

1.存储区域不同:静态变量存储在静态存储区,普通变量存储在堆中;

2.静态变量与类相关,普通变量则与实例相关。

3.内存分配方式不同。

4.生命周期不同。

在java语言中,静态变量和普通变量有什么区别?的相关图片

在java语言中,静态变量和普通变量有什么区别?

实例变量又称成员变量:

成员变量定义在类中,在整个类中都可以被访问。

成员变量随着对象的建立而建立,随对象的消失而消失,存在于对象所在的对内存中。

成员变量有默认初始值

局部变量:

定义在方法中或方法的参数列表(或者语句中)

存在于栈内存中,作用的范围结束,变量空间自动释放。

默认没有初始化值,使用时需要进行初始化。

静态变量又称类变量:用static修饰。

存储在方法区中

随着类的加载而存在,随着类的消失而消失。

可以由类名或对象调用

伪代码说明

public class Variable{     。

    static int a = 0;        //类变量。

    String b = "hello world";//实例变量。

    public void method(){        。

        int c = 0;           //局部变量。

    }

java中静态变量和实例变量的生命周期有什么区别?的相关图片

java中静态变量和实例变量的生命周期有什么区别?

静态变量: 用关键字static修饰的成员变量称作静态变量或类变量;

实例变量:没有使用static修饰的成员变量称作实例变量。

静态变量是与类相关联的数据变量,类变量不仅可以通过某个对象访问也可以直接通过类名访问。

实例变量仅仅是和相应的对象关联的变量,改变其中一个对象的实例变量不会影响其它对象的这个实例变量。实例变量必须通过对象访问。

java中静态变量和实例变量到底有什么区别_看了就知道啦的相关图片

java中静态变量和实例变量到底有什么区别_看了就知道啦

首先很能理解你求知而无解的心情,因为我也是过来人。

静态变量是类相关的变量,所以他的生命周期是从这个累被声明,到这个类彻底被垃圾回收机制彻底回收才会被销毁。

实例变量是这个类的对象里的变量,它和静态变量不同,它只能由创建出的对象来调用,所以实例变量是从这个对象(其实就是实例)被创建开始,直到这个对象没有任何引用变量去引用它,最终被垃圾回收站回收,这时这个实例变量也跟着就消失了。

总而言之:静态变量生命周期就是类的开始和销毁。

实例变量生命周期就是对象的开始和销毁。‘

不知道这样说你能懂不,看着这些,自己好好理解理解,有时候不经意间就懂了呵呵。

Java中静态变量和实例变量的区别和应用场合问题

运行效果:控制台效果:==================================================代码部分==================================================/hello_test/src/com/b510/test/StaticTest.java 1/** 2 * 3*/ 4package com.b510.test; 5 6/** 7 * 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,<br> 8 * 其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某<br> 9 * 个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,<br> 10 * 不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。<br> 11 * 总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以<br> 12 * 直接使用类名来引用。例如,对于下面的程序,无论创建多少个实例对象,<br> 13 * 永远都只分配了一个<code>staticInt</code>变量,并且每创建一个实例对象,<br> 14 * 这个<code>staticInt</code>就会加1;但是,每创建一个实例对象,就会分配一个<code>random</code>,<br> 15 * 即可能分配多个<code>random</code>,并且每个<code>random</code>的值都只自加了1次。<br> 16 * 17 * @author <a href="mailto:hongtenzone@foxmail.com">hongten</a> 18 * @date 2013-3-2 19*/20publicclass StaticTest { 2122privatestaticint staticInt = 2; 23privateint random = 2; 2425public StaticTest() { 26 staticInt++; 27 random++; 28 System.out.println("staticInt = "+staticInt+" random = "+random); 29 } 3031publicstaticvoid main(String[] args) { 32 StaticTest test = new StaticTest(); 33 StaticTest test2 = new StaticTest(); 34 } 35 }。

原文地址:http://www.qianchusai.com/java%E9%9D%99%E6%80%81%E5%8F%98%E9%87%8F%E4%B8%8E%E5%AE%9E%E4%BE%8B%E5%8F%98%E9%87%8F%E7%9A%84%E5%8C%BA%E5%88%AB.html

一年级看图写话图片动物园开大会

一年级看图写话图片动物园开大会

什么样的校园形容词,什么样的校园形容词四字成语

什么样的校园形容词,什么样的校园形容词四字成语

民航运输专升本能报哪个学校,民航运输专升本可以考什么专业

民航运输专升本能报哪个学校,民航运输专升本可以考什么专业

小学生读书感悟怎么写,小学生读书感悟怎么写一100字

小学生读书感悟怎么写,小学生读书感悟怎么写一100字

班级动物园作文300字,班级动物园作文300字左右四年级优秀的

班级动物园作文300字,班级动物园作文300字左右四年级优秀的

cc/发育正常吗颜色这么粉,cdcc发育筛查是什么

cc/发育正常吗颜色这么粉,cdcc发育筛查是什么

疯狂动物城狐狸袭击兔子,疯狂动物城的狐狸和兔子叫什么名字

疯狂动物城狐狸袭击兔子,疯狂动物城的狐狸和兔子叫什么名字

无锡三高中怎么样,无锡三高中是重点高中吗?

无锡三高中怎么样,无锡三高中是重点高中吗?

二年级数学下册口算题卡,二年级数学下册口算题卡100道免费

二年级数学下册口算题卡,二年级数学下册口算题卡100道免费

健康最重要的经典语录,健康最重要的经典语录 身体健康是本钱

健康最重要的经典语录,健康最重要的经典语录 身体健康是本钱