JAVA main with args

问题描述:

public class Wells { 
    String str[] = null; 

    static public void main(String args[]) { 

    Wells objWells = new Wells(); 
    System.out.println(args.length);// we will NOT get null pointer exception WHY ? 

    System.out.println(objWells.str.length); // we will get null pointer exception 
    } 

} 
+0

的'STR [1]'新井空,所以你得到的NPE当您试图获取其长度。对于“为什么'args' _not_ null”部分,请参阅http://*.com/questions/9605532/args-guaranteed-to-be-non-null – yshavit

+0

问题是,为什么你会期望'str'成为'null'以外的任何东西。至于'args',它永远不会被默认为 – AxelH

在主要方法中,参数永远不为null。

在你的对象要定义它为空,所以这将是空

+0

是的。但面试官问为什么主要方法中的参数不能为空。 – javafan

+0

嗯,我不知道,但AFAIK args数组由JVM初始化,所以它总是初始化,永远不会为空。如果你需要检查它的空白,你应该检查args.length == 0 – SCouto