Java初始化变量还是数组?

Java初始化变量还是数组?,java,Java,这一行代码给出以下警告: short[] sh = null; for (int i = 0, n = b.length; i < n; i++) { sh[i] = 0; } short[]sh=null; for(int i=0,n=b.length;i

这一行代码给出以下警告:

    short[] sh = null;

    for (int i = 0, n = b.length; i < n; i++) {
        sh[i] = 0;

    }  
short[]sh=null;
for(int i=0,n=b.length;i
警告:变量sh在此位置只能为null

short[] sh;

for (int i = 0, n = b.length; i < n; i++) {
    sh[i] = 0;

} 
short[]sh;
for(int i=0,n=b.length;i
并且,该代码给出以下警告:

    short[] sh = null;

    for (int i = 0, n = b.length; i < n; i++) {
        sh[i] = 0;

    }  

警告:局部变量sh可能尚未初始化。

这是因为需要初始化数组。试试这个:

short[] sh = new short[b.length];

如果不初始化,则会收到这些警告,如果运行它,则会收到
NullPointerException

这是因为需要初始化数组。试试这个:

short[] sh = new short[b.length];

如果不初始化,则会收到这些警告,如果运行它,则会收到
NullPointerException

sh在代码中始终为空:

short[] sh = new short[b.length];

sh在代码中始终为空:

short[] sh = new short[b.length];

初始化意味着创建数组,在Java中使用“new”关键字


初始化意味着创建数组,在Java中使用“new”关键字


sh
是表示
short
s数组的变量

警告:变量sh在此位置只能为null

short[] sh;

for (int i = 0, n = b.length; i < n; i++) {
    sh[i] = 0;

} 
sh
已初始化但未正确初始化,它为
null

short[] sh = new short[b.length];
警告:局部变量sh可能尚未初始化


由于局部变量不像实例变量那样自动初始化,因此必须对其进行初始化。

sh
是一个表示
数组的变量

警告:变量sh在此位置只能为null

short[] sh;

for (int i = 0, n = b.length; i < n; i++) {
    sh[i] = 0;

} 
sh
已初始化但未正确初始化,它为
null

short[] sh = new short[b.length];
警告:局部变量sh可能尚未初始化


由于局部变量不像实例变量那样自动初始化,因此必须对其进行初始化。

您刚刚声明了一个变量

您需要创建阵列:

short[] arr = new short[size];

您刚刚声明了一个变量

您需要创建阵列:

short[] arr = new short[size];