参考答案
Java中定义常量的方法有两种:Class、Interface。
1. Class
采用“类.常量名”方法进行调用,需要私有化构造方法,避免创建该类的实例,同时不让其他类继承该类。
如果多处需要访问工具类中定义的常量,可以通过静态导入(static import)机制,避免用类名来修饰常量名。
//final修饰符 public final class Constants { //私有构造方法 private Constants() {} public static final int ConstantA = 100; public static final int ConstantB = 100; ...... }
2. Interface
在interface中声明的字段,虚拟机在编译时自动加上public static final修饰符。使用方法一般是“接口.常量名”。也可以通过实现该接口,直接访问常量名,即常量接口模式。
public interface Constants { int ConstantA = 100; int ConstantB = 100; ...... }
总结:
interface中定义常量方法生成的class文件,比第一种方法的class文件更小, 且代码更简洁, 效率更高。
在Java中会产生问题,主要是Java的动态性,Java中一些字段的引用可以在运行期动态进行。
某些场景下,部分内容改变可只进行部分编译。
因此,推荐使用Class定义常量,但采用private修饰符,通过get方法获取常量,这种方案可以保证java的动态性。
public class A{ private static final String name = "bright"; public static String getName(){ return name; }
以上,是Java面试题【Java怎么定义一个常量】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—