java中定义符号常量_在Java中定义常量字符串?

我有一个常量字符串列表,需要在Java程序中的不同时间显示它们。

在C语言中,我可以在代码顶部定义以下字符串:

#define WELCOME_MESSAGE"Hello, welcome to the server"

#define WAIT_MESSAGE"Please wait 5 seconds"

#define EXIT_MESSAGE"Bye!"

我想知道用Java做这种事情的标准方法是什么?

static final String WELCOME_MESSAGE ="Hello";?

你有做过研究吗?

是的,但是我读了一些网站,他们说final不是java中的常量,所以我不

Java中的@csss final表示无法更改引用-但指向的对象仍然可以更改。 对我们来说幸运的是,Java中的String是一个不可变的类,因此final String在这两个方面都是常量。

通常,您可以在班级顶部定义此代码:

public static final String WELCOME_MESSAGE ="Hello, welcome to the server";

当然,根据使用此常量的位置,使用适当的成员可见性(public / private / protected)。

香港专业教育学院一直想知道,如果将常量定义为私有,是否不必将常量设置为静态?

不,它应该仍然是static。 每次实例化类型时,将其设置为私有和非静态仍将创建该字符串的新副本。 见stackoverflow.com/q/1415955/247763

它看起来像这样:

public static final String WELCOME_MESSAGE ="Hello, welcome to the server";

如果常量仅在单个类中使用,则需要将其设为private而不是public。

public static final String YOUR_STRING_CONSTANT ="";

或行业中另一个典型的标准是拥有一个Constants.java命名类文件,其中包含要在项目中使用的所有常量。

您可以使用

public static final String HELLO ="hello";

如果您有许多字符串常量,则可以使用外部属性文件/简单

"固定持有人"类

我们通常将常量声明为static。这样做的原因是因为Java在每次实例化该类的对象时都会创建非静态变量的副本。

因此,如果我们使常量static不会这样做,则会节省内存。

使用final,我们可以使变量恒定。

因此,定义常量的最佳实践如下:

private static final String YOUR_CONSTANT ="Some Value";

访问修饰符可以为private/public,具体取决于业务逻辑。

你错了。 由于JVM使用了字符串池,因此无助于节省内存。

@Mirimas Nope。 老兄,你错了。 静态仅初始化一次,但每次初始化非静态变量的对象时,都会初始化一个非静态变量。

这里使用了字符串池,因为您不使用" new"关键字来创建字符串。 因此,即使您不对字符串使用static,它也会使用已从字符串池创建的引用。 查看更多:stackoverflow.com/questions/3297867/

只需使用

final String WELCOME_MESSAGE ="Hello, welcome to the server";

该指令的主要部分是"最终"关键字。


版权声明:本文为weixin_42511315原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>