请问String aa;与String aa=null;两个语句有什么差别?
Vector bb;与Vector bb=null;的差别跟上面的差别也一样吗?

解决方案 »

  1.   

    en 在内存中是没有差别的,当你在类中定义了String aa;并且定义了类对象后
    比如class A //define class
        {
    String aa;
    public A();
    {aa=null;}
    .....public static void main(String arg[])
    {
    A a=new A();}
    }
    当执行上面的程序时,内存中产生a对象实例时会隐式的初始化String 变量为null,整型变量为0.调用构造函数时执行构造函数中的初始化语句,对aa进行赋值为null
      

  2.   

    c++中会有一点影响。如果是全局变量话就默认null不知道java中有没有这样的概念
      

  3.   

    对于类的成员是一样的,但是对局部变量形如
    String aa;声明不能保证会编译通过,java要求对局部变量有一个显示的初始化。
      

  4.   

    在JAVA中String aa如果是全局变量aa的初始默认值也是null;
    String aa=null;我个人觉得没什么区别;
      

  5.   

    String aa;  没有初始化,不可以被使用
    String aa = null; 已经初始化,可以被使用另外,如果aa为类属性,那么默认是初始化为null,也
    就是说String aa 和String aa = null是一样的
      

  6.   

    String aa;与String aa=null;两个语句有什么差别?
    个人认为
    String aa;只是申明了名为aa的变量,内存中并没有分配空间;
    String aa=null;申明了名为aa的变量,内存中分配空间并指向null;Vector bb;与Vector bb=null;的差别跟上面的差别也一样吗?
    感觉同上,因为在java中String也是个对象。
      

  7.   

    String aa;如果是全局变量的话初始化为null;
    String aa;如果是局部变量的话不能编译通过,你自己调试下程序看下就知道了!是局部变量必须赋初值!如String aa = "123";