2021年10月11日 java1

考点1:

关于下面代码 int[] x=new int[25]; 描述正确的是()

  • A x[25]存放了数据“\0”。
  • B x[24] 存放了数据“\0”。
  • C 若访问x[25],程序将抛出异常。
  • D x[1]访问此数组的第一个元素。
显示答案/隐藏答案正确答案: C

A:不存在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 错误
显示答案/隐藏答案正确答案: B

this()才必须是构造函数中的第一个可执行语句,用this调用语句并不需要。

考点4:

下列哪些语句关于内存回收的说明是正确的? ( )

  • A 程序员必须创建一个线程来释放内存
  • B 内存回收程序负责释放无用内存
  • C 内存回收程序允许程序员直接释放内存
  • D 内存回收程序可以在指定的时间释放内存对象
显示答案/隐藏答案正确答案: B

A : JVM会自己创建垃圾回收线程;
B :内存回收线程的作用,正确;
C :程序员无法释放内存,程序员最多是使用System.gc()和Runtime.getRuntime().gc()通知系统释放内存;
D:系统释放内存时间是不确定的,会根据当前程序的内存使用情况而定。

img

考点5:

下列语句中,正确的是

  • A float x=0.0
  • B boolean b=3>5
  • C char c=”A”
  • D double =3.14
显示答案/隐藏答案正确答案: B
在java里面 float类型数据类型初始化时必须使用后缀f 因为java默认浮点型是double 用后缀f表示为float类型; A应为:float x = 0.0f; 布尔值可以是一个表达式的值,但必须是一个true或者false值 B正确 char只能是一个字符 而不是一个字符串 C应为:char c='A'; D没变量名...没变量名...没变量名...重要的事情说三遍

考点6:

1
2
3
4
5
6
7
8
9
10
public class CharToString {
public static void main(String[] args)
{
char myChar = 'g';
String myStr = Character.toString(myChar);
System.out.println("String is: "+myStr);
myStr = String.valueOf(myChar);
System.out.println("String is: "+myStr);
}
}

此代码片段输出正确的值是()

  • A
    1
    2
    String is: g
    String is: g
  • B
    1
    2
    String is: 103
    String is: g
  • C
    1
    2
    String is: g
    String is: 103
  • D
    1
    2
    String is: 103
    String is: 103
显示答案/隐藏答案正确答案: A
1
2
3
4
5
6
7
8
public static String toString(char c) {
return String.valueOf(c);
}

public static String valueOf(char c) {
char data[] = {c};
return new String(data, true);
}

返回的都是字符串,只有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
2
3
4
String a="My field1";
String b="My field1";
String c=new String("My field1");
String d=new String("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在编译时会被发现
显示答案/隐藏答案正确答案: ABCD

Java的异常分为两种,一种是运行时异常(RuntimeException),一种是非运行异常也叫检查式异常(CheckedException)。
1、运行时异常不需要程序员去处理,当异常出现时,JVM会帮助处理。常见的运行时异常有:

  • ClassCastException(类转换异常)
  • ClassNotFoundException
  • IndexOutOfBoundsException(数组越界异常)
  • NullPointerException(空指针异常)
  • ArrayStoreException(数组存储异常,即数组存储类型不一致)
  • 还有IO操作的BufferOverflowException异常

2、非运行异常需要程序员手动去捕获或者抛出异常进行显示的处理,因为Java认为Checked异常都是可以被修复的异常。常见的异常有:

  • IOException
  • SqlException