首页 > 试题广场 >

下列代码中的错误是()

[单选题]

下列代码中的错误原因是()

(1)   public class Test

(2)   {

(3)       public static void main(String [] args)

(4)       {

(5)           int i;

(6)           i+=1;

(7)       }
(8) }


  • 非法的表达式 i+=1
  • 找不到符号i
  • 类不应为public
  • 尚未初始化变量i
我还以为是说选项 ABCD 哪个错误呢?搞得我一脸懵逼,原来是说代码的错误原因,那必须的是 : 在方法内定义的变量在使用之前必须初始化,否则报错。
发表于 2017-06-03 00:02:06 回复(14)
类变量(静态变量)在类加载过程的准备阶段会进行一次赋值,一般是空值或constantValue属性值,同时在初始化阶段会调用类构造器再进行一次赋值。而实例变量在创建对象时会调用实例构造器进行一次赋值。因此无论是类变量还是实例变量,在使用前都是非空的。而局部变量没有初始化过程,在使用前必须赋值。
发表于 2017-06-06 10:37:52 回复(1)
局部变量:方法定义中或者方法声明上。 
局部变量:在内存的栈中。
局部变量:随方法的调用而存在,随着方法的调用完毕而消失。 
局部变量:没有默认值,必须定义,赋值,然后才能使用
编辑于 2017-06-05 10:36:21 回复(2)
选B,
类变量(静态变量),在方法区分配,属于类本身的属性。有默认值,引用类型的默认值是null,基本数据类型,int就是0,char就是’\u0000‘等。
成员变量,在堆上分配,属于某个实例。有默认值,引用类型的默认值是null,基本数据类型,int就是0,char就是’\u0000‘等。
局部变量,在栈上分配,就是在栈的局部变量表中。随着栈帧的出栈而消失。第一次调用前,必须先初始化。没有默认值。

注意,类变量和成员变量一旦被final修饰,必须在声明的时候就显式初始化,这个时候默认值无效。final修饰局部变量,局部变量不必立刻西安式初始化,在调用前初始化就ok
发表于 2018-06-28 09:43:39 回复(3)
简单一句话:只有类的变量才会自动初始化
发表于 2018-10-08 14:36:47 回复(1)
局部变量没有默认值
发表于 2017-05-04 17:34:13 回复(0)
这是一道语文题……
发表于 2017-08-21 00:31:32 回复(0)
局部变量在使用前必须赋初值,成员变量会取默认值
发表于 2021-12-18 12:52:20 回复(0)
局部变量参与运算前要进行初始化,全局变量和静态变量是有默认值
发表于 2021-07-02 13:47:53 回复(0)
vbn头像 vbn
变量分成员变量,局部变量,成员变量有默认值,可以不赋值,局部变量必须赋值。其次,成员变量属于对象的内容,在堆中,局部变量在方法中,存在栈中。
发表于 2019-05-11 23:00:20 回复(0)
 此题应该是改为:正确的选项是
发表于 2017-10-27 14:00:29 回复(0)
发表于 2017-08-07 16:10:46 回复(0)
烂题 Java  成员变量默认初始化 局部变量无默认初始化
发表于 2017-05-07 15:18:52 回复(0)
选D
成员变量的基本数据类型可以不初始化,有默认值
局部变量的基本数据类型必须初始化,没有默认值
发表于 2021-07-16 21:02:01 回复(0)
又错了,基础不行了,类变量会初始化,有默认值。局部变量没有默认值,所以报错了
发表于 2025-12-01 17:45:18 回复(0)
要初始化赋值,没有默认值
发表于 2025-05-16 19:43:43 回复(0)
错就错在 i+=1;这里展开就是 i=i+1;
但是这里的i没有进行赋值 去进行算术运算,编译器会报错
发表于 2025-05-14 21:01:32 回复(0)
在方法内定义的变量在使用之前必须初始化,否则报错。
发表于 2025-03-30 12:05:04 回复(0)
局部变量在使用前必须赋值
发表于 2023-04-17 20:02:47 回复(0)
I属于局部变量
发表于 2022-11-21 12:28:10 回复(0)