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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 必须进黑马 初级黑马   /  2013-11-4 15:39  /  1138 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class  shit{
        public static void main(String[] args) {
                String a;
                 int b;
                System.out.println("hello world");
        }
}

请问局部变量不是要初始化吗,为什么上面代码不会报错呢

评分

参与人数 1技术分 +1 收起 理由
狼王 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
- - 你只是做了声明  后面没有调用这两个变量呀。 调用的时候就会报错了
回复 使用道具 举报
之所以没有出错是因为你没有调用,你可以把输出语句改为 System.out.println(a+"hello world"+b);就会发现程序编译不过,变量只有在调用时才会调用java虚拟机去编译,检验此变量是否初始化,如果没有初始化是不能调用的,这时才会报错1
回复 使用道具 举报
没有错,声明却没有调用,不会报错。
回复 使用道具 举报
关于这个问题推荐你看一篇文章:http://alanlhy.iteye.com/blog/1163636
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马