我是个菜鸟,问下大侠们3个问题:
    1、字符串数组是不是同时具有长度属性和长度方法?
    2、只能在DOS下传入给main参数的值吗?传入的都是值?有没有传入其他形式的东西?
    3、DOS下传入方法main中参数的数组的值都是静态初始化形式?有没有动态初始化形式的?初始化只有动态初始化和静态初始化2种吗?

解决方案 »

  1.   

    1、字符串数组是数组,而不是字符串,所以只有长度属性
    2、除了在DOS下传递以外,很多IDE也支持在运行时配置里设定,本质是一样的
    3、数据可以分静态初始化和动态初始化,参数不存在,对于字符串数组参数来说,传递的只是一个已经创建好的字符串数组的地址,这个地址由JVM负责传递。
      

  2.   

    1、args.length
    2、字符串数组,其元素必须是字符串 
    3、可以写成bat,动态运行main等类似的调用
      

  3.   

    首先在这里谢谢大家啦!真的麻烦各位大侠了^-^  我可能有点太菜,还是有些不明白的地方:2楼在3回答中说传入的地址,我有点迷了,比如我用解释器时输入java 类名 a b c  然后用输出语句输出的为a b c 这a b c在这里是地址吗??不是值吗?还有3楼回答的“动态运行main等类似的调用”我不太清楚怎么类似,可以举个例子吗?
     
    真的麻烦各位大侠了
      

  4.   

    谢谢啦
        1. 那么数组静态初始化时并没有使用new,如:
                 String str1[]={"a","b","c"};
             和 String str2[]=new String[3];
            如果动态初始化用new在堆开辟空间,那么静态初始化不使用new,是在哪里开辟空间呀?
        2. 如果不是只有关键字new可以开辟空间,可以举个关键字例子吗?
        3. 还有一个问题:是不是用new创建的都是引用啊?还是JAVA中只有对象可以引用?
           如果只有创建对象时才使用new,可数组的静态初始化也没使用new,那么都什么时候(或什么情况下)使用new呀?
    最后一次麻烦了^__^
      

  5.   

    用new 创建的是对象,返回的是引用,对象的创建并不一定都要显式的用new,比如一个类的class对象,静态初始化在类的初始化时!
      

  6.   

    这是一种特殊情况,可以直接分配内存,不需要用“new”
    类似的还有, String a = "abc";也没有使用new,一样创造了对象,注意,这些都是些使用的简便方法,用久了就知道了。  String   str1[]={"a","b","c"}; == String str1[] = new  String[] {"a", "b", "c"}String s = "a";== String s = new String("a");注意: 尽量使用简便的那种方式。