今天,在我的采访中,一位面试官要求我写一个单例课程。我给我的答案是
public class Singleton {
private static Singleton ref;
private Singleton() {
}
public static Singleton getInstance() {
if (ref == null) {
ref = new Singleton();
}
return ref;
}
}
突然他告诉我这是上课的老方法。谁能帮我他为什么这么说。
创建单例时,我想到的第一件事是enum
。我通常使用enum实现单例:
enum Singleton {
INSTANCE;
}
使用枚举可为您带来的好处之一就是序列化。
对于单例类,您将必须确保通过实现readResolve()
方法来确保序列化和反序列化不会创建新实例,而enum并非如此。
使用类,您应该这样创建单例:
public final class Singleton implements Serializable {
// For lazy-laoding (if only you want)
private static class SingletonHolder {
private static final Singleton INSTANCE = new Singleton();
}
private Singleton() {
if (SingletonHolder.INSTANCE != null) {
// throw Some Exception
}
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
// To avoid deserialization create new instance
@SuppressWarnings("unused")
private Singleton readResolve() {
return SingletonHolder.INSTANCE;
}
}
今天,在我的面试中,一个面试官让我写一个单件课。我的回答是 突然,他告诉我这是写这门课的老方法。有谁能告诉我他为什么那样说。
问题内容: 我目前正在使用学校管理软件,该软件通常需要导出包含和的html内容。 我已经尝试了所有可能的方法来编写代码,从而能够以一种很好的方式(最好是使用CSS)导出html数据。在这里检查了一些问题和答案之后,我尝试使用spdf,但是没有运气。 它一直在破坏我的表对齐方式,然后我读了一下,但是要实现它是我的问题,如果要使用div标签,则要捕获内容,然后发送画布以将画布导出为pdf。 这是我的代
问题内容: 在mysql中是否可以格式化适当大小写的列? 例: 我进行了很多搜索,我认为MySQL没有任何内置函数可以执行此操作。有可能在MySQL中以其他任何方式执行此操作吗? 问题答案: 您可以结合使用CONCAT和SUBSTRING:
我想写一个包含我们想在项目中使用的函数的Python文件。我们正在为Instagram开发一个硒网刮擦机器人。现在我们在脚本中编写所有的函数,但是我们想制作一个“函数”文件,我们将导入并用于我们的脚本。但问题是,当我想使用像
Spring批道具也是如此:
上面的代码是创建魔方的代码。我如何以更简单的形式编写下面的代码,让java初学者能够理解?