2019年11月15日 java1
考点1
要表示10个学生的成绩,下列声明并初始化数组正确的是()
- A
int[] score=new int[ ]
- B
int score[10]
- C
int score[]=new int[9]
- D
int score[]=new int[10]
解析
显示答案/隐藏答案
正确答案: D以下两种写法都可以:
int score[] = new int[10];
int[] score = new int[10];
考点2
下面有关java基本类型的默认值和取值范围,说法错误的是?
- A 字节型的类型默认值是0,取值范围是-2^7—2^7-1
- B
boolean
类型默认值是false
,取值范围是true
`false` - C 字符型类型默认是0,取值范围是-2^15 —2^15-1
- D
long
类型默认是0,取值范围是-2^63—2^63-1
解析
显示答案/隐藏答案
正确答案: C考点3
关于下列程序段的输出结果,说法正确的是:( )
1 | public class MyClass{ |
- A 有错误,变量i没有初始化。
- B
null
- C 1
- D 0
解析
显示答案/隐藏答案
正确答案: D成员变量会默认初始化
静态成员可以访问静态成员
考点4
java中下面哪个能创建并启动线程()
1 | public class MyRunnable implements Runnable{ |
- A
new Runnable(MyRunnable).start()
- B
new Thread(MyRunnable).run()
- C
new Thread(new MyRunnable()).start()
- D
new MyRunnable().start()
解析
显示答案/隐藏答案
正确答案: C考点5
list是一个ArrayList的对象,哪个选项的代码填到//todo delete处,可以在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?()
1 | Iterator it = list.iterator(); |
A it.remove();
B list.remove(obj);
C list.remove(index);
D list.remove(obj,index);
解析
显示答案/隐藏答案
正确答案: AIterator 支持从源集合中安全地删除对象,只需在 Iterator 上调用 remove() 即可。这样做的好处是可以避免 ConcurrentModifiedException ,当打开 Iterator 迭代集合时,同时又在对集合进行修改。有些集合不允许在迭代时删除或添加元素,但是调用 Iterator 的remove() 方法是个安全的做法。
在循环中调用List的remove方法出现的问题
如果在循环的过程中调用集合的remove()方法,就会导致循环出错,例如:
1 | for(int i=0;i<list.size();i++){ |
循环过程中list.size()的大小变化了,就导致了错误。
所以,如果你想在循环语句中删除集合中的某个元素,就要用迭代器iterator的remove()方法,因为它的remove()方法不仅会删除元素,还会维护一个标志,用来记录目前是不是可删除状态,例如,你不能连续两次调用它的remove()方法,调用之前至少有一次next()方法的调用。
正确使用List的remove方法删除元素的写法
for循环删除问题,如果真想用,可以这样,既不出错,也能正确删除:
1 | for(int i=0;i<list.size();i++){ |
1 | public class Test { |
考点6
关于下面的程序Test.java说法正确的是( )。
- A 3
- B 112
- C 13
- D 程序有编译错误
解析
显示答案/隐藏答案
正确答案: Dstatic不能修饰局部变量
被static修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效,所以static不能修饰局部变量
考点7
下面代码的运行结果为:()
1 | import java.io.*; |
- A 代码得到编译,并输出”s=”
- B 代码得到编译,并输出”
s=null
“ - C 由于
String s
没有初始化,代码不能编译通过 - D 代码得到编译,但捕获到
NullPointException
异常
解析
显示答案/隐藏答案
正确答案: C局部变量不会默认初始化
局部变量可以先声明不用必须初始化,但使用局部变量之前一定要先初始化。
考点8
Java语言中,下面哪个语句是创建数组的正确语句?( )
- A
float f[][] = new float[6][6];
- B
float []f[] = new float[6][6];
- C
float f[][] = new float[][6];
- D
float [][]f = new float[6][6];
- E
float [][]f = new float[6][];
解析
显示答案/隐藏答案
正确答案: ABDE二维数组变量和两个中括号可以全排列
二维数组的一维长度必须确定
二维数组定义时,一维的长度必须定义,二维可以后续定义