有个问题singleton想请教一下

public class Elvis {
public static final Elvis INSTANCE = new Elvis();
private Elvis() {
// ...
}
}
我不太清楚 public static final Elvis INSTANCE = new Elvis();
final除了在效率上有点作用外,单纯在设计模式上讲,有什么作用吗?如果已经为static了,在内存中不是就有一个类变量INSTANCE,
是不是与final没有关系了?