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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙汇川 黑马帝   /  2012-2-9 19:45  /  2934 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有静态常量吗?
静态变量随类的加载而加载,只有一份,那这个静态变量可以被对象更改吗?更改的那份是对公共的都更改了吗?

7 个回复

倒序浏览
1.有句话叫“艺术源自于生活”,程序设计也一样,因此常量就是用于来描述一些固定的数据,比如圆周率π,你想π是通用的吧,谁都能用:数学家能用,小学生能用等等,因此通常定义常量都会用public static final 3个词来修饰,叫做权限足够大、共享数据、值固定。
2.静态变量可以被对象更改的。在内存中的静态区部分数据是共享的也就是只有一份,当你创建n多对象时,这些对象都共享这一个资源,当你用其中一个对象更改了共享数据后,其他对象再去使用这部分数据时候,就是改完以后的了。用静态修饰的变量,就比如咱俩用一台电脑,我用完了,你再用,里面的数据是我用过之后的,再来一个人还用这台电脑。如果没有静态修饰,那么就相当于咱俩都各用自己的电脑,再来一个人就再配一台电脑,各人是各人的数据。

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
楼主静态常量 可以用static final来修饰通常用来表示不再改变的量

静态变量 和静态方法一样都是类中特有的属性和方法,可以在不new对象的时候直接用  类.属性  类.方法 来使用
静态变量对类的所有实例对象来说是公有的,所有对象都可以使用,更改  且更改后的结果影响所有该类的实例对象,
通常静态变量在类中是用来当计数器来使用

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
          变量加上final就不能被修改。建议楼主去看毕老师的关于final视屏。http://dl.dbank.com/c00zm3eeld
回复 使用道具 举报
静态变量和成员变量的区别:
1,在内存空间存储的位置:
     a)        静态变量:方法区的静态区中。
     b)        成员变量:堆内存中。
2,生命周期:
     a)        静态变量:随着类的加载而加载,随着类的消失而消失。
     b)        成员变量:随着对象的创建而出现,随着所属对象变成垃圾被收回而消失
3,调用方式:
     a)        成员变量:只能被对象调用。
     b)        静态变量:既可以被对象调用,也可以被类名调用。
4,数据体现:
     a)        成员变量的值称为对象中的特有数据。
     b)        静态变量的值称为对象中的共享数据。


变量当然可以改变了,只有被final修饰的变量才不能再次赋值。
由于static是在静态方法区中,是被数据共享的。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
问题一:没有静态常量的说法,“我们说被 final static修饰的变量”,在这句话里即然说是变量那它就是变量,只不过你可以把它当成静态常量吧!因为它实现的功能就是你想象中的那个静态常量的功能了。
问题二:没有被final修饰的静态变量的值是可以改变的,既然你只道只有一份就容易了,比如有一辆货车,我假设它是静态的,你给他装上一车石头,不管它开到哪里,它装的都是一车石头,如果你改变它的值,比如你给它装上一车土,这是可以的,你给它装上土后那么它所去到的任何地方你看到它的车上装的就都是土了,因为都是同一量车嘛。
回复 使用道具 举报
梁健 黑马帝 2012-2-10 08:06:53
7#
你可以这样想,类其实就是一个模板,而对象就是由这个模板拷贝出来的。
在由类创建对象时,就是把类中的所有非静态变量都拷贝给了创建的对象,这些非静态变量都存储在所创建对象的内存空间中,但在这个过程中静态变量是不会拷贝给对象的
,也就是说用类创建对象时,所有的变量都拷贝一份给了对象,但只有静态变量是不会拷贝给对象的,它是存储在类的空间中,所有对象可以用它,但用的是同一个静态变量,这个静态变量只在类的空间中保存了一份。没有被final修饰的静态变量的值是可以改变的,改变的是公共的。其实只要你能明白静态变量和类的关系,这些问题就没什么好说的。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
小白 黑马帝 2012-2-10 17:42:49
8#
那这个静态变量可以被对象更改;
更改的那份是对公共的都更改了;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马