static final和final修饰的变量在何时被初始化

在JVM中static final和final修饰的变量在何时被初始化呀?

static final修饰的变量在编译的时候就被分配空间了嘛?,我知道它在类的加载过程二中的准备阶段会进行显示初始化。
那只使用final修饰的变量呢?只使用final修饰的变量属于对象层面,难道是和普通成员变量一样吗

final 修饰的变量必须声明的时候就要初始化,加了 static 说明是全局的,

static 加载一次初始化一次

final初始化一次 加载不一定,final一个list,还能不让这个list.add()吗?这样的话要他有何用

static修饰的变量在类加载的阶段初始化,你说在准备阶段初始化,其实并不是这样,准备阶段只是分配内存,此时变量只是初始值,真正的初始化在初始化阶段(类加载过程分为:加载-链接(包括验证,准备,解析)-初始化,初始化阶段就执行类构造器<client>方法的过程,client方法就是收集的类型变量赋值操作和静态代码块的语句。