草庐IT

常量池

全部标签

java - 字符串常量池和实习生

这几天我一直在尝试理解String常量池和inter的概念,看了很多文章后我了解了其中的一些部分,但仍然对一些事情感到困惑:-1.Stringa="abc"这会在字符串常量池中创建一个对象但是下面这行代码是否在字符串常量池中创建了对象“xyz”?Stringb=("xyz").toLowerCase()2.Stringc="qwe"Stringd=c.substring(1)d.intern()Stringe="we"是否应该在类加载期间将文字“we”添加到字符串常量池中,如果是这样,为什么即使d未指向字符串常量池,d==e也会导致true 最佳答案

java - 在 Java 中声明项目常量的正确方法是什么?

对于Java开发人员来说,这似乎是一个愚蠢的问题,但是,我是Java的新手,而且我的背景是低级c。我曾经包含一个头文件,其中包含与我的项目相关的所有常量。(通常是#define的)。我现在正在处理一个大型Java项目,我需要将一些常量设置为全局常量(它们适合多个类,并用于项目的各个部分)这让我很难决定把它放在哪里,我应该声明同一个常量几次,每个类一个吗?很多框架,使用XML文件来声明框架的常量和定义(Hibernate、Log4J等)在我的项目中使用这种技术是否明智?如果是这样,如何轻松完成? 最佳答案 与许多事情一样,有很多方法可

Java-在子类也需要使用的抽象类中使用常量

我有一个抽象类和2个子类。有4个常量与所有类相关。我打算将final放在抽象类中,但我知道final变量不是继承的?我是否必须在每个类中定义常量(似乎效率低下)?或者只是将常量设为即时变量(听起来不是个好主意)?我可以通过哪些方式解决这个问题? 最佳答案 如果在抽象类中定义,则以下内容将对您的所有子类可用。publicstaticfinalIntegerMYCONSTANT=42;或staticfinalIntegerMYCONSTANT=42;或protectedstaticfinalIntegerMYCONSTANT=42;第二

java - 枚举是否比 public static final 常量更难维护?

我最近与friend讨论枚举与公共(public)静态最终常量。我告诉他publicstaticfinalconstants比枚举更易于维护,有时速度更快(android开发人员文档证实了这一点),也更方便。我还说过,使用枚举也会失去功能:您不能扩展枚举。您不能实例化枚举。然后他说,如果您需要实例化或扩展枚举,则不应使用枚举。然后我回答说,这就是为什么我们应该只使用常量,因为它更易于维护;如果在项目中期我们需要实例化一个枚举或扩展它怎么办?然后我们将不得不改变一切。为了说明我的观点而制作的枚举与常量示例:publicenumWeekDay{/**Wewillstartat1fordem

java - 为什么使用常量而不是枚举?

我在许许多多的Java库中看到使用了许多常量,而枚举本可以很容易地使用。即使在Swing中,也有很多代码使用常量而不是枚举。为什么?使用枚举有什么缺点? 最佳答案 因为枚举是在Java5中引入的,而那些库在很早以前就已经编写好了。重构它们会破坏无数的现有应用程序。 关于java-为什么使用常量而不是枚举?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6978878/

java - 如何在 Javafx 中为 XML 文件创建常量变量

StackPanelayoutY="70.0"prefHeight="479.0"。我想在Java文件中将值(70.0)和(479.0)设为静态,以便我可以将它们用于其他文件。这可能吗? 最佳答案 如果您的常量是在类中定义的:publicclassSomeClass{publicstaticfinaldoubleDEFAULT_HEIGHT=479;//...}然后您可以按如下方式在FXML中访问它:确保您在fxml文件中为您正在使用的类导入了适当的文件。 关于java-如何在Javaf

java - 一个类应该实现一个常量接口(interface)吗?

今天查看了ZipEntry类,发现如下:publicclassZipEntryimplementsZipConstants,CloneableZipConstants没有定义任何方法-只有常量(staticfinalintLOCHDR=30)然后我想到用常量实现接口(interface)可以让您直接访问这些常量,就好像它们是在类本身中定义的一样。例如:publicinterfaceConstants{staticfinalintCONST=2;}publicclassimplementsConstants{intdoSomething(intinput){returnCONST*inp

java - 将常量类作为参数传递并存储它

伪代码所提供的片段将被视为伪代码。如果有不同的解决方案是解决此问题的标准方法,我持开放态度。这是关于预期的用法:一些说明:一个,每个应用程序将只使用一个配置。它不会在运行时更改。Main.java不允许@Override。Configuration.java不能是Interface,因为应为未覆盖的字段提供默认值。Configuration.java将从当前的两个字段中大幅增长。使构建器模式变得非常困惑。配置.javapublicclassConfiguration{publicstaticintgetFoo(){return1;}publicstaticintgetBar(){ret

java - Selenium WebDriver - 将 WebElement 选择器定义为 By 常量是个好主意吗?

我重构了我的java项目以将WebElement选择器定义为By常量。这允许我将By常量传递到我的findElement方法中,而不需要在方法中评估By选择器类型。这是一个好主意吗?如果将By变量定义为publicstaticfinal常量,我可能会遇到什么问题?示例如下:publicstaticfinalByLOGIN_BUTTON_SELECTOR=By.cssSelector("input[name='logIn']");/***clicktheLoginbutton*/publicvoidclickLoginButton()throwsTimeoutException,Stal

java - 将枚举转换为具有常量的类

是否有IntelliJ重构允许自动将枚举转换为类,从而将其枚举值转换为staticfinal字段?我似乎找不到任何关于它的东西,我只找到了关于提取常量的东西,但没有找到我要找的东西。我正在寻找的例子例如,我想像这样转换一个枚举:publicenumPlanet{MERCURY(3.303e+23,2.4397e6),VENUS(4.869e+24,6.0518e6),EARTH(5.976e+24,6.37814e6),MARS(6.421e+23,3.3972e6),JUPITER(1.9e+27,7.1492e7),SATURN(5.688e+26,6.0268e7),URANUS