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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张强+ 黑马帝   /  2011-11-9 23:18  /  1781 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

静态变量和实例变量的区别?

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
静态变量随着类的加载而加载,随着类的消失而消失,存储在方法区,实例对象,变量则是在new 类的时候也就是初始化时被创建,存储在堆内存中。静态变量或函数优先于对象的存在!也就是在一个类被加载的时候,静态变量或函数已经被存储在方法区,而实例对象变量则是再new类的时候被创建!

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
静态变量属于整个类,存在于内存中的方法区,随着类被加载而加载,可以直接通过类名来调用  类名.变量名;
事例变量属于某个对象的属性,必须创建对象,才在内存中分配空间,必须通过这个对象来调用

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
声明上:静态变量需要加上static修饰符
生命周期:静态变量随着类的加载而加载,随着类的消失而消失,实例变量随着对象的创建而创建
存储区域:静态变量存储在方法区或共享区,实例变量存储在堆内存中
应用上:当对象中的某个属性值都一样时,则可以声明 为静态的,这样节约内存消耗,不足是生命周期长
调用:静态变量比实例变量多了一种调用方法,即  类名.属性   也就是说我们在不创建对象的情况下就可以调用静态变量,是实例变量必须创建对象才能调用

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
静态变量和实例变量都可以用一个具体实例加.来引用。如  a.x;  静态变量还可以直接用类名加.进行引用 如 ClassName.x。静态变量和实例变量最大的区别是静态变量在内存中只有一份,所以该类的所有实例共享该变量;而实例变量随实例的不同可以不相同。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马