社区
Java SE
帖子详情
静态常量与非静态常量的区别
h3g2010
2011-11-25 04:22:17
今天用Eclipse的一个FindBug插件来扫描工程,提示了好多这样的问题:
就是建议把
private final int ABC = 1;
替换成
private static final int ABC = 1;
我们都知道,静态类型只需要初始化一次,但是这样就常驻内存了不是吗,我的问题就是为什么常量要声明称静态的呢?
请各位大侠指教!
...全文
1079
11
打赏
收藏
静态常量与非静态常量的区别
今天用Eclipse的一个FindBug插件来扫描工程,提示了好多这样的问题: 就是建议把 private final int ABC = 1; 替换成 private static final int ABC = 1; 我们都知道,静态类型只需要初始化一次,但是这样就常驻内存了不是吗,我的问题就是为什么常量要声明称静态的呢? 请各位大侠指教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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变量在内存中只有一个,而且唯一
Java中
静态
常量
和
静态
变量的
区别
本文通过实例深入解析Java中
静态
常量
与
静态
变量的加载机制,展示两者在类加载过程中的
区别
,以及
静态
常量
如何在不加载类的情况下被访问。同时,文章阐述了Java
常量
池的作用与好处,以及运行时
常量
池的动态特性。
java
静态
常量
_Java中
静态
常量
和
静态
变量的
区别
本文探讨了Java中
静态
常量
和
静态
变量的加载时的
区别
。通过StaticClass类和StaticClassLoadTest测试类的例子,展示了
静态
常量
在类未加载时即可访问,而
静态
变量则在类加载时初始化。这表明
静态
常量
存储在JVM的
常量
池中,可以不依赖类加载直接使用,而
静态
变量需要类加载后才能初始化。对于final和static共同修饰的
静态
常量
,如果其值在编译期可确定,则不需要类加载,否则依然会触发类加载。
Enum枚举类,
静态
常量
类,
静态
类的
区别
博客主要探讨了Enum枚举类、
静态
常量
类和
静态
类。介绍了它们的结构组成和用法,重点分析了三者
区别
:
静态
类属性值可变,另两者不可变;
静态
常量
类属性值存
常量
池,另两者存Metaspace;Enum枚举类可比较排序,后两者默认不能。
测试java中
静态
常量
和
静态
变量的
区别
本文通过示例代码展示了Java中
静态
常量
与
静态
变量的加载时机
区别
。
静态
常量
可在类未完全加载时访问,而
静态
变量的访问会触发类的加载过程。此外还讨论了编译期
常量
的概念。
常量
、
静态
常量
、成员变量、局部变量的
区别
本文详细解释了
常量
、
静态
常量
、成员变量及局部变量的概念及其
区别
,并通过具体例子帮助理解每种变量的特点与应用场景。
Java SE
62,622
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章