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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 习嘻嘻 于 2013-11-16 10:50 编辑

class Something {
    final int i;
    public void doSomething() {
        System.out.println("i = " + i);
    }

    public static void main(String[] args)
    {
        new Something().doSomething();
    }
}


评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

4 个回复

倒序浏览
你这不是找茬么,定义一个常量不赋值,就算人家语法允许,有什么意义么你这个
回复 使用道具 举报
你定义了final  又没有给i赋值   系统是不会给i赋予初始化值的  因为你final了  i就不可以被改变  连系统默认初始化也不可以。
解决办法 要么你把final去掉   要么直接给final赋予一个值让他变成常量 final int i = 10;

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
final修饰的常量是不能在后面的代码中修改值的。所以你必须在定义final常量的时候一块初始化。
final int i = 10;
回复 使用道具 举报
栈内存中的数据是没有默认初始化值的哦,要手动赋值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马