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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Nick_KJ 于 2015-4-7 19:31 编辑

今天敲代码,无意中好奇char[]类型数组的初始化值是什么,遂检验了一下。
结论如下,先看代码:
  1. class InitializationDemo
  2. {
  3. public static void main(String[] args)
  4. {
  5.     char[] ch = new char[6];
  6.     sop(ch[1]=='\u0000');
  7.     String[] st = new String[6];
  8.     sop(st[1]==null);
  9. }
  10. public static void sop(Object obj)
  11. {
  12.   System.out.println(obj);
  13. }
  14. }
复制代码

结果是:
            true
            true
除了基本数据类型外,其他建立的对象(如通过new建立的各种对象),初始化默认值是 :null 。String并不是基本数据类型,所以他的初始化类型值为 null。
注意:如果你把 char[0] == null ;系统编译会报错“不可比较类型:char 和<空值>。可我们明明知道,此时 char[0]此时还是为”空值“(不是空格,但不是严格意义上的null)。这就涉及java基本数据类型的默认值。
我总结如下:
                    数据类型                          默认值
                      byte                                   0
                      shot                                   0
                      int                                      0
                      long                                   0
                      float                                   0.0f
                      double                               0.0d
                      char                                   '\u0000'
                      boolean                             false            

希望可以给大家带来一个参考。         

1 个回复

正序浏览
char的默认值还真的不知道,谢谢啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马