不一样,代码二的复制是在非静态代码块里面,所以必须要在Test类被实例化(一般是new)的时候才会执行,这个要测试也不难,自己写个main方法直接打印Test._i的值就可以看出不同了
解决方法 1:
其实,可能要初始化的"最佳"方式,ArrayList 是你写的方法,因为它不需要创建一个新的 List 以任何方式:
ArrayListString list = new ArrayListString();
list.add("A");
list.add("B");
list.add("C");
渔获是相当多的键入所需,请参阅 list 实例.
有如使一个匿名的内部类的一个实例初始值设定项 (也称为一种"双大括号初始化") 的方法:
ArrayListString list = new ArrayListString() {{
add("A");
add("B");
add("C");
}}
不过,我不太喜欢该方法,因为什么你最终是一个类的子类 ArrayList 有一个实例初始值设定项和这类只是为了创建一个对象 — — 只是看起来像我有点大材小用.
java语法规定,成员变量可以不初始化,变量将会根据定义的类型取类型的默认值,但是局部变量一定要初始化才能被使用!!!所以,你的代码只要把
FileInputStream fin;
改成
FileInputStream fin = null;
即可编译通过
以上就是土嘎嘎小编为大家整理的java初始化代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!