请问JAVA用什么代替C/C++中的宏定义?

HashCodeWithJava 2004-01-02 04:14:47
在C/C++里,比如说我需要设置一些宏
#define OK 1
#define NOT_OK 0
...

那么我在Java怎么定义这样的宏,同时又不会占用系统内存?

我知道用final static int可以,不过那样是申请了变量,变量会驻扎在内存中的.
...全文
5452 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
HashCodeWithJava 2004-01-03
  • 打赏
  • 举报
回复
真的吗?
太好了!


马上给分!
bw78619 2004-01-02
  • 打赏
  • 举报
回复
不,final static int OK = 1;并不产生任何变量,在对OK的引用编译器用了OK的值1.
你可以试验一下:
//"A.java"
class A
{
final static int OK = 1;
}

//"B.java"
class B
{
public static void main(String args[])
{
System.out.println(A.OK);
}
}
编译A.java,B.java并执行,打印出"1";

再把A.java改为:
class A
{
public static int OK = 0;
}
再编译A.java,但不要编译B.java,再执行文件"B.class",可以看到,还是打印出"1"而不是"0",所以在B.class中,并没有引用OK,而是直接引用了其值.
HashCodeWithJava 2004-01-02
  • 打赏
  • 举报
回复
等等
我需要在J2ME里面做
就是1kB的资源都是十分庞大的了.
我有很多final static int,算起来差不多半K了
fishstudio 2004-01-02
  • 打赏
  • 举报
回复
最新的1.5的泛型怎么样?

要不就是objects了
yoken 2004-01-02
  • 打赏
  • 举报
回复
通常java程序都会产生大量的objects在内存中,区区一个int可以忽略不计
xl5550 2004-01-02
  • 打赏
  • 举报
回复
final static int 代表整型常量,因为有final
bmlf 2004-01-02
  • 打赏
  • 举报
回复
你可以用 static 声明一个变量
Yanbin_Q 2004-01-02
  • 打赏
  • 举报
回复
java不用那些东西
就用
final static int吧。

62,610

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧