2021年10月11日 java1
考点1:
关于下面代码 int[] x=new int[25]; 描述正确的是()
- A x[25]存放了数据“\0”。
- B x[24] 存放了数据“\0”。
- C 若访问x[25],程序将抛出异常。
- D x[1]访问此数组的第一个元素。
显示答案/隐藏答案
正确答案: CA:不存在x[25] 索引从0开始到length-1
B:x[24]
存的是默认值0(java中没有’\0’这一说)
C:超出内存 正确
D:第二元素
考点2:
下列哪个语句语法正确?( )
- A byte y = 11; byte x = y +y;
- B String x = new Object();
- C Object x = new String(“Hellow”);
- D int a [11] = new int [11];
显示答案/隐藏答案
正确答案: C正确答案是C
对于A,前一半语句赋值是没有问题的,问题是后半句,在对byte型的变量进行相加时,会先自动转换为int型进行计算,所以计算结果也是int型的,int型赋值给byte需要强制转换,所以A会出错
对于B,因为object是String的父类,所以不能这样使用,不能把父类对象赋值给子类,只能是Object x = new String();
对于C,因为String是Object的子类,所以可以将子类赋值给父类。
对于D,因为在声明变量时不需要指定容量,例如int a[] = new int[11];这样是正确的,但是像D选项这样是错误的
选C。该题考查的是数据类型转换以及转换原则和取值范围。
A选项属于赋值和算术运算的转换:byte取值范围-128~127,所以byte y = 11正确;byte x = y +y基本就是先转换为高位数据类型,再参加运算,结果也是最高位的数据类型, byte short char运算会转换为int,所以错误。
B选项是多态的条件应用:1.要有继承;2.要有重写;3.父类引用指向子类对象。Object是一切类的基类,正确的写法应该是:Object x=new String()。所以B选项错误。
D选项声明数组变量的错误,正确的应该是int a []或者int[] a。所以D错误。
考点3:
This调用语句必须是构造函数中的第一个可执行语句。
- A 正确
- B 错误
显示答案/隐藏答案
正确答案: Bthis()才必须是构造函数中的第一个可执行语句,用this调用语句并不需要。
考点4:
下列哪些语句关于内存回收的说明是正确的? ( )
- A 程序员必须创建一个线程来释放内存
- B 内存回收程序负责释放无用内存
- C 内存回收程序允许程序员直接释放内存
- D 内存回收程序可以在指定的时间释放内存对象
显示答案/隐藏答案
正确答案: BA : JVM会自己创建垃圾回收线程;
B :内存回收线程的作用,正确;
C :程序员无法释放内存,程序员最多是使用System.gc()和Runtime.getRuntime().gc()通知系统释放内存;
D:系统释放内存时间是不确定的,会根据当前程序的内存使用情况而定。
考点5:
下列语句中,正确的是
- A float x=0.0
- B boolean b=3>5
- C char c=”A”
- D double =3.14
显示答案/隐藏答案
正确答案: B考点6:
1 | public class CharToString { |
此代码片段输出正确的值是()
- A
1
2String is: g
String is: g - B
1
2String is: 103
String is: g - C
1
2String is: g
String is: 103 - D
1
2String is: 103
String is: 103
显示答案/隐藏答案
正确答案: A1 | public static String toString(char c) { |
返回的都是字符串,只有char变成 int 的时候才会变为对应的assic码
考点7:
已知x >= y and y >= z 为真,那么x > z or y = z 值为
- A 真
- B 假
- C 无法确定
- D x y z同为正数时为真
显示答案/隐藏答案
正确答案: C答案应该是C
条件可以简单分析为数学不等式 x>=y>=z,那么x>z不一定为true
当x>z为true,后面的条件忽略,结果为真;
当x==z,x>z为fslae,继续判断后一个条件
- 如果z==0,则y=z为false,结果为假;
- 如果z!=0,则y=z为true,结果为真;
所以,最后的结果是不确定的。
考点8:
以下哪些表达式返回为真()
1 | String a="My field1"; |
- A a==b
- B a==c
- C c=d
- D a.equals(b)
- E a.equals(c)
显示答案/隐藏答案
正确答案: ADE考点9:
下列正确的有()
- A call by value不会改变实际参数的数值
- B call by reference能改变实际参数的参考地址
- C call by reference不能改变实际参数的参考地址
- D call by reference能改变实际参数的内容
显示答案/隐藏答案
正确答案: ACD选ACD。该题考察的是值传递和引用传递参数的调用。
- 值传递是将变量的一个副本传递到方法中,方法中如何操作该变量副本,都不会改变原变量的值。
- 引用传递是将变量的内存地址传递给方法,方法操作变量时会找到保存在该地址的变量,对其进行操作。会对原变量造成影响。
考点10:
以下说法哪个是正确的()
- A IOException在编译时会被发现
- B NullPointerEception在编译时不被发现
- C SQLException在编译时会被发现
- D FileNotFoundException在编译时会被发现
显示答案/隐藏答案
正确答案: ABCDJava的异常分为两种,一种是运行时异常(RuntimeException),一种是非运行异常也叫检查式异常(CheckedException)。
1、运行时异常不需要程序员去处理,当异常出现时,JVM会帮助处理。常见的运行时异常有:
- ClassCastException(类转换异常)
- ClassNotFoundException
- IndexOutOfBoundsException(数组越界异常)
- NullPointerException(空指针异常)
- ArrayStoreException(数组存储异常,即数组存储类型不一致)
- 还有IO操作的BufferOverflowException异常
2、非运行异常需要程序员手动去捕获或者抛出异常进行显示的处理,因为Java认为Checked异常都是可以被修复的异常。常见的异常有:
- IOException
- SqlException