当前位置: 首页 > 面试题库 >

用getter是“ public static final”还是“ private static final”?

符佐
2023-03-14
问题内容

在Java中,有人教导说应该对变量进行私有化以实现更好的封装,但是静态常量呢?这个:

public static final int FOO = 5;

结果将等同于此:

private static final int FOO = 5;
...
public static getFoo() { return FOO; }

但是哪种更好的做法?


问题答案:

有一个原因不直接在代码中使用常量。

假设FOO稍后可能会更改(但仍保持不变)public static final int FOO = 10;。只要没有人愚蠢到直接对值进行硬编码就不会破坏任何内容吗?

否。Java编译器会将上面的Foo等常量内联到调用代码中,即someFunc(FooClass.FOO);变成someFunc(5);。现在,如果您重新编译库而不是重新编译调用代码,则可能会遇到令人惊讶的情况。如果您使用某个函数,则可以避免这种情况-
JIT仍会对其进行优化,因此实际性能不会受到影响。



 类似资料:
  • 根据yaml.org,正式文件扩展名为。 报价: 如果可能,请使用“.YAML”。 然而,在互联网上使用哪种扩展似乎存在分歧。如果您在web上查找示例,许多示例都使用未经许可的扩展名。

  • 问题内容: 对于我开发的某些应用程序(后来逐渐忘记了),我一直在编写纯SQL,主要是针对MySQL。尽管我在SQLAlchemy之类的python中使用过ORM,但是我并没有坚持很长时间。通常,这是文档或复杂性(从我的角度来看)使我退缩。 我这样看:如果要使用一种类型的数据库,则使用ORM进行可移植性,使用普通SQL。我真的在寻求有关在开发需要数据库支持的应用程序时何时使用ORM或SQL的建议。

  • 问题内容: 内置函数在我看来更像Pythonic,但我发现使用起来更频繁。 Python文档指出它们是等效的。 一位博客作者声称这比。 我应该使用哪个? 问题答案: 我会用。 来自:https : //wiki.python.org/moin/DubiousPython#Premature_Optimization 尽管正确应用优化确实可以加快代码的速度,但很少使用[..]的优化代码会使代码更难阅

  • 要做到这一点,我应该启用哪个功能--动态链接、应用程序索引还是应用程序邀请?

  • 问题内容: 做AJAX的首选方法是什么。 如果是针对使用Jquery for AJAX用PHP编写的搜索页面 您将如何处理回应 a) 让响应包含所有相关的html /样式 要么 b) 发送纯JSON并使用javascript函数围绕javascript变量构建html /样式。 我可以看到两者的优势。“ a”显然更容易,而“ b”则更有效(尽管gzip可能使差异可忽略不计)。 问题答案: 我会说“

  • 从Selenium文档来看,WebDriver是一个接口,但在Eclipse中是包在项目浏览器中显示为一个类。此外,如果WebDriver是一个接口,则实现它的类(如ChromeDriver或InternetExplorerDriver)应该定义或。我们在哪里可以看到这些方法的方法定义?