社区
Java SE
帖子详情
静态常量与非静态常量的区别
h3g2010
2011-11-25 04:22:17
今天用Eclipse的一个FindBug插件来扫描工程,提示了好多这样的问题:
就是建议把
private final int ABC = 1;
替换成
private static final int ABC = 1;
我们都知道,静态类型只需要初始化一次,但是这样就常驻内存了不是吗,我的问题就是为什么常量要声明称静态的呢?
请各位大侠指教!
...全文
956
11
打赏
收藏
静态常量与非静态常量的区别
今天用Eclipse的一个FindBug插件来扫描工程,提示了好多这样的问题: 就是建议把 private final int ABC = 1; 替换成 private static final int ABC = 1; 我们都知道,静态类型只需要初始化一次,但是这样就常驻内存了不是吗,我的问题就是为什么常量要声明称静态的呢? 请各位大侠指教!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liujiaoshui
2012-11-13
打赏
举报
回复
用static修饰过的常量会存到常量池里面。存入的方式是:先到常量池里面寻找,看是否该常量已经存在,如果存在返回该常量的引用,不存在就在常量池里面新建一个常量,返回引用。如果没有修饰,就属于对象的属性,绝大多是对象是存在堆中,也就是如果多个对象存在同样一个常量,在堆中会为每一个对象的该常量分配存储空间。由此可以看出,static修饰后的作用就是减少内存的消耗,常量的存储位置发生了变化。
JAVAkuroro
2011-11-30
打赏
举报
回复
可以把static final 看做类变量 一个类中只有唯一的一个 final看做对象变量 每个对象里面只有唯一一个 但是各个对象的final变量可以不一样
lliiqiang
2011-11-30
打赏
举报
回复
static是代表所有的对象共用的资源
Firebirds
2011-11-30
打赏
举报
回复
static 的 内存只能存在一个。非static的 可以有N个 一个对象就有一个!·
小绵羊
2011-11-29
打赏
举报
回复
private final int ABC = 1;该类的每个实例都持有一个abc变量
private static final int ABC = 1;整个应用中只存在一个abc变量
cp298674954
2011-11-29
打赏
举报
回复
static 是确定生命周期的
孟祥月
2011-11-29
打赏
举报
回复
[Quote=引用 2 楼 awusoft 的回复:]
什么叫常量?一般来说就是不会变的量
静态与非静态:
静态:对于该类的对象来说,都只有一个,叫类变量
非静态:每个该类的对象都各有一个,叫成员变量.
因为是常量,不会变的,所有的对象都是一样的,所以就只需要一个就够了.
工商银行卡类:他们有一个静态的银行卡名称叫:工商银行卡-->静态
每个卡又月自己的卡号-->非静态.
在创建对象的时候,需要每个成员变量(非静态)……
[/Quote]
很详细 楼主看了这个就可以不看别的了
lxbccsu
2011-11-29
打赏
举报
回复
常驻内存只有在加载了当前类的时侯才会发生;
波杰克男
2011-11-27
打赏
举报
回复
楼上的强大
awusoft
2011-11-27
打赏
举报
回复
什么叫常量?一般来说就是不会变的量
静态与非静态:
静态:对于该类的对象来说,都只有一个,叫类变量
非静态:每个该类的对象都各有一个,叫成员变量.
因为是常量,不会变的,所有的对象都是一样的,所以就只需要一个就够了.
工商银行卡类:他们有一个静态的银行卡名称叫:工商银行卡-->静态
每个卡又月自己的卡号-->非静态.
在创建对象的时候,需要每个成员变量(非静态)开辟内存空间,类变量(静态变量)则是在类加载的时候就创建好了.
叮当你去哪了
2011-11-25
打赏
举报
回复
减小内存开销,static,保证了你的ABC变量在内存中只有一个,而且唯一
php 类中的
常量
、
静态
属性、非
静态
属性的
区别
主要介绍了php 类中的
常量
、
静态
属性、非
静态
属性的
区别
与介绍,需要的朋友可以参考下
易语言学习-
常量
支持库(
静态
版)--2010-1-27更新.zip
易语言学习-
常量
支持库(
静态
版)--2010-1-27更新.zip
C#中
常量
和只读变量的
区别
小结
本篇文章主要是对C#中
常量
和只读变量的
区别
进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
c#只读字段和
常量
的
区别
,以及
静态
构造函数的使用实例
主要介绍了c#只读字段和
常量
的
区别
,以及
静态
构造函数的使用实例,有需要的朋友可以参考一下
cholesky分解的matlab代码
cholesky分解 用来分解对称正定矩阵的matlab代码 从而方便求解线性方程组
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章