A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wyq0627java11 中级黑马   /  2016-8-18 23:25  /  536 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

final修饰的变量的初始化时机:
答:a.未被static关键字修饰
       * 可以显示初始化
       * 可以在构造方法中初始化
b.被static修饰
       * 可以显示初始化
       * 可以在静态代码块中初始化
       * 不能在构造方法中初始化
这块有点晕

2 个回复

倒序浏览
楼主先区分static变量和非static变量的区别。

非static变量是实例相关的,会在对象创建时进行初始化。因此可以在普通代码块、对象的初始化语句或者构造器中进行初始化。静态不能访问非静态,所以非static修饰的final变量不能在static代码块中进行初始化。

static变量是与类相关的,会在类加载时进行初始化。类加载时会执行静态代码块和类的初始化语句(static变量的初始化语句)。因此被static修饰的final变量要么在类的初始化语句中显式地指定初始值,要么在静态代码块中指定初始值。
回复 使用道具 举报
哦哦,谢谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马