什么是Java中的String Interning,何时应该使用它,为什么?
何时初始化静态字段?如果我从不实例化一个类,但是我访问一个静态字段,是否所有静态块和私有静态方法用于实例化那个时刻调用的私有静态字段(按顺序)?
如果我调用静态方法怎么办?它是否也运行所有静态块?方法之前?
我有一个同事发誓
//in a singleton "Constants" class
public static final String EMPTY_STRING = "";
Run Code Online (Sandbox Code Playgroud)
在整个项目中可用的常量类中.这样,我们可以写出类似的东西
if (Constants.EMPTY_STRING.equals(otherString)) {
...
}
Run Code Online (Sandbox Code Playgroud)
代替
if ("".equals(otherString)) {
...
}
Run Code Online (Sandbox Code Playgroud)
我说是的
谁是这里的白痴?
我正在使用此代码段来检查是否启用了通知:
NotificationManagerCompat.from(getContext()).areNotificationsEnabled()
Run Code Online (Sandbox Code Playgroud)
但是,如果用户仅禁用该频道,我无法知道它.
对于下面的代码,声纳中显示了一个提示:
重构此代码以使用“静态最终”模式。
我不明白,这是什么问题。在声纳中也没有明确解释。
请帮我。
public Boolean validateLabelText(String labelValue, String fieldCell) {
return labelValue
.replaceAll(StringUtils.SPACE, StringUtils.EMPTY)
.equalsIgnoreCase(fieldCell.replaceAll(StringUtils.SPACE, StringUtils.EMPTY)
.replaceFirst(StringUtils.LF, StringUtils.EMPTY));
}
Run Code Online (Sandbox Code Playgroud)