在Java中定义常量字符串?
我有一个常量字符串列表,我需要在Java程序的不同时间显示这些字符串 在C语言中,我可以在代码顶部定义如下字符串:在Java中定义常量字符串?,java,string,Java,String,我有一个常量字符串列表,我需要在Java程序的不同时间显示这些字符串 在C语言中,我可以在代码顶部定义如下字符串: #定义欢迎消息“您好,欢迎使用服务器” #定义等待消息“请等待5秒” #定义退出消息“再见!” 我想知道在Java中做这类事情的标准方法是什么?通常您会在类的顶部定义: public static final String WELCOME_MESSAGE = "Hello, welcome to the server"; 当然,根据使用此常量的位置,使用适当的成员可见性(pub
#定义欢迎消息“您好,欢迎使用服务器”
#定义等待消息“请等待5秒”
#定义退出消息“再见!”
我想知道在Java中做这类事情的标准方法是什么?通常您会在类的顶部定义:
public static final String WELCOME_MESSAGE = "Hello, welcome to the server";
当然,根据使用此常量的位置,使用适当的成员可见性(
public
/private
/protected
)。它将如下所示:
public static final String WELCOME_MESSAGE = "Hello, welcome to the server";
如果这些常量仅在单个类中使用,您可能希望将它们设置为私有
,而不是公共
public static final String YOUR_STRING_CONSTANT = "";
public static final String HELLO = "hello";
如果有许多字符串常量,则可以使用外部属性文件/simple
“常量持有者”类只需使用
final String WELCOME_MESSAGE = "Hello, welcome to the server";
本说明的主要部分是“final”关键字。或行业中的另一个典型标准是使用Constants.java命名类文件,其中包含整个项目中使用的所有常量。我们通常将常量声明为
静态
。这是因为每次实例化类的对象时,Java都会创建非静态变量的副本
因此,如果我们将常量设为静态
,它将不会这样做,将节省内存
使用final
我们可以使变量保持不变
因此,定义常量变量的最佳实践如下:
private static final String YOUR_CONSTANT = "Some Value";
根据业务逻辑,访问修饰符可以是私有/公共代码>?是的,但我读过一些网站,他们说“final”在java中不是常量,所以我不确定。@csss
final
在java中表示引用不能更改,但它指向的对象仍然可能更改。幸运的是,Java中的String
是一个不可变的类,因此final String
在这两方面都是常量。我一直想知道,如果将常量定义为“private”,是否没有必要将常量设置为“static”?不,它仍然应该是static
。使其私有且非静态仍会在每次实例化类型时创建字符串的新副本。我看错你了。由于JVM使用的字符串池,这无助于节省内存。@Mirimas Nope。你错了,伙计。静态变量只初始化一次,但非静态变量在每次初始化该变量的对象时都会初始化。这里使用字符串池,因为您不使用“new”关键字来创建字符串。因此,即使您不将static用于字符串,它也将使用字符串池中已创建的引用。查看更多: