A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 天,殇心 中级黑马   /  2014-6-30 22:16  /  2163 人查看  /  21 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

静态变量和实例变量的区别?
在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
例如,对于下面的程序,无论创建多少个实例对象,永远都只分配了一个staticVar变量,并且每创建一个实例对象,这个staticVar就会加1;但是,每创建一个实例对象,就会分配一个instanceVar,即可能分配多个instanceVar,并且每个instanceVar的值都只自加了1次。
public class VariantTest{
                public static int staticVar = 0;
                public int instanceVar = 0;
                public VariantTest(){
                        staticVar++;
                        instanceVar++;
                        System.out.println(“staticVar=” + staticVar + ”,instanceVar=” + instanceVar);
                }
}

评分

参与人数 1黑马币 +1 收起 理由
菜小徐 + 1

查看全部评分

21 个回复

倒序浏览
谢谢分享
回复 使用道具 举报
顶。。。
回复 使用道具 举报
:handshake              
回复 使用道具 举报
爱分享的人,都是有爱心的
回复 使用道具 举报
赞一个~~
回复 使用道具 举报
№星晨∮ 发表于 2014-7-1 15:22
爱分享的人,都是有爱心的

呵呵!!!大家都是有爱心的,互相学习
回复 使用道具 举报
汤姆纳斯 来自手机 高级黑马 2014-7-1 17:27:58
8#
多谢分享啊!
回复 使用道具 举报
谢谢分享
回复 使用道具 举报

互相分享些,互相学习
回复 使用道具 举报
多谢分享!
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
O(∩_∩)O谢谢楼主的分享。。。
回复 使用道具 举报
谢谢分享了!!!:lol
回复 使用道具 举报
Mark一下
回复 使用道具 举报
感谢分享
回复 使用道具 举报
呃呃……挺简单的一题,谢谢分享
回复 使用道具 举报
感谢分享,辛苦了!
回复 使用道具 举报
好人啊,,分享面试题的人真是不多啊!!
回复 使用道具 举报
顶顶顶顶
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马