题35:答案B下面关于数据类型的默认值的说法中错误的是:(选择1项)A.char类型的默认值是:'\u0000'
B.boolean类型的默认值是:false
C.float和double类型的默认值是:0.0
D.int\short\long类型的默认值是:0
E.引用类型的默认值是:null参考:http://wenku.baidu.com/view/829e2eda7f1922791688e88c.html
其中的第35题我觉得这个几个选项都对呢,很困惑的啊

解决方案 »

  1.   

    你试试不就知道了
    boolean b;
    System.out.println(b);
      

  2.   


    public class TestA {
    boolean bb;
    public static void main(String[] args) {
    TestA a = new TestA();
    System.out.println(a.bb);
        }
    }输出false
      

  3.   

    设为类的成员变量 , 你那肯定是方法里面设置的变量,默认 false;
      

  4.   

    感觉是 c 吧0.0 这样的表达形式,在 java 中默认认为的是 double 型
    float 的默认值不能是 0.0 应该精确表达为 0.0f
      

  5.   

    float的默认值也是0.0当然是在成员变量的情况下
      

  6.   


    float a = 0.0;
    这样写能通过编译嘛?
      

  7.   


    public class Test { static byte a;
    static short b;
    static int c;
    static long d;
    static float e;
    static double f;
    static boolean g;
    static char h; public static void main(String[] args) throws Exception {
    System.out.println(a);
    System.out.println(b);
    System.out.println(c);
    System.out.println(d);
    System.out.println(e);
    System.out.println(f);
    System.out.println(g);
    System.out.println(h == '\u0000');
          }
    }
    0
    0
    0
    0
    0.0
    0.0
    false
    true
      

  8.   


    我觉得一定要自己去试才知道,
    通不通过编译, 自己试了就马上知道了,记的看视频, 
    说 long l = 1; 不可以, 一定要在后面加个l;
    但是, 试了才知道, 不加也可以, 只是如果右边的数超过了int 的范围就一定要加l
      

  9.   

    既然是默认值,
    那我们必须看一下 0.0 默认表示的是什么如果把一个数据类型的默认值赋值给它,不应该报错吧?
    因为编译过程中,对成员变量初始化默认值的时候,
    实际上就是做了这样一句赋值 char a = '\u0000';
    boolean b = false;
    double c = 0.0;
    float d = 0.0;
    int e = 0;
    short f = 0;
    long g = 0;
    String h = null;这里面唯一一句会报错的就是 float d = 0.0;
      

  10.   


    System.out.println(e);
    最终调用的是 Float 的 toString 方法
    如果是看内存的值,那 float 的表达形式恶心着呢
      

  11.   

    0.0, 默认是 double   
    附給float, 就肯定要加上f了
      

  12.   

    局部变量,以及final的没有默认值,必须赋值,否则编译错误,
    成员变量(包括数组元素),默认值其实都是0,
    byte 0
    short/int/long 是0
    float/double 是0.0
    char '\u0000'也就是是C语言中的'\0'其实也是0,
    boolean false,也就是C里面的0感觉那个35题,没正确答案
      

  13.   

    package begood;public class DefaultValue {
    char c;
    int i;
    float f;
    double d;
    byte b;
    short s;
    String str;
    long l;
    boolean bl; public static void main(String[] args){
    DefaultValue dv = new DefaultValue();
    System.out.println(dv.c); //啥也木有
    System.out.println(dv.i);//0
    System.out.println(dv.f);//0.0
    System.out.println(dv.d);//0.0
    System.out.println(dv.b);//0
    System.out.println(dv.s);//0
    System.out.println(dv.str);//null
    System.out.println(dv.l);//0
    System.out.println(dv.bl);//false
    }}