问题描述
- io流变量在new前,为什额还需要赋值为null。
- fileinputstream in=null;
try{
in=new fileinputstream(f);
}catch{
}finally{
if(in!=null) in.close();
}
定义变量in时,为什么还需要赋值为null;
这里的概念不太清楚。又想起了,有些时候定义的基本类型的变量eclipse也提示需要赋一个初始值,
解决方案
这是因为JAVA要求在使用变量之前必须要初始化,JAVA不像C/C++一样,在定义局部变量的时候会给一个初始值。
解决方案二:
因为你在后面要用,如果写在try catch中finally无法访问,
另外赋值null会在内存中有一块儿空间,否则没有。
解决方案三:
所有的语言都有这样的规范要求,但不是强制的。你试着不赋值,看看编译时会不会报错!
解决方案四:
因为在try中定义变量的话 变量 in是一个局部变量作用范围只在Try{}里面,finally{}里面没法调用。所以定义在外面的,变量初始化就不用说了
解决方案五:
给变量赋初始值,方便在finally里使用判断,不然只是声明了变量,没值,后面怎么做值得判断
解决方案六:
Java中使用变量前需要先赋值
时间: 2024-10-02 05:45:41