牛客选择题练习【二】(20道)(含答案和解析)

1.以下代码运行输出的是(C)

public class Person{
	private String name = "Person";
	int age=0;
}
public class Child extends Person{
	public String grade;
	public static void main(String[] args){
		Person p = new Child();
		System.out.println(p.name);
	}
}

A 输出:Person
B 没有输出
C 编译出错
D 运行出错
解析:
子类无法继承父类中的私有成员,但是子类对象的内存里是有父类成员的,有不代表可以用。
name成员在父类Person中是私有属性的,不可以在子类中直接调用!

2.以下程序的输出结果为(D)

class Base{
	public Base(String s){
		System.out.print("B");
	}
}
public class Derived extends Base{
	public Derived (String s) {
		System.out.print("D");
	}
	public static void main(String[] args){
		new Derived("C");
	}
}

A BD
B DB
C C
D 编译错误
解析:
子类构造方法在调用时必须先调用父类的,由于父类没有无参构造,所以必须在子类中显式调用,用super()进行调用,放第一行
修改子类构造方法如下即可:

	public Derived(String s){
        super("s");
        System.out.print("D");
    }

3.下面关于构造方法的说法不正确的是 (B)
A 构造方法也属于类的方法,可以创建对象的时候给成员变量赋值
B 构造方法不可以重载
C 构造方法没有返回值
D 构造方法一定要和类名相同
解析:
构造方法可以重载;
构造方法必须满足以下语法规则:  
(1)方法名必须与类名相同;  
(2)不要声明返回类型;  
(3)不能被static、final、synchronized、abstract和native修饰;  
(4)构造方法不能被子类继承,所以用final和abstract修饰没有意义。  
(5)构造方法在父类中没有方法体,在子类中必须被重载。

4.在异常处理中,以下描述不正确的有(D)
A try块不可以省略
B可以使用多重catch块
C finally块可以省略
D catch块和finally块可以同时省略
解析:
(1)try:用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出。
(2)catch:用于捕获异常。catch用来捕获try语句块中发生的异常。:
(3)finally:修饰的语句块总是会被执行。它主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件)。只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者throw等终止方法的语句,则就不会跳回执行,直接停止。

catch块和finally块不可以同时省略

5.下列描述中,错误的是(C)
A SQL语言又称为结构化查询语言
B java中”static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问
C 面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上
D java是强类型语言,javascript是弱类型语言
E 面向对象的三大特性包括:封装,继承,多态
解析:
对象被值传递和引用传递的区别:
(1)对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响源对象的值。
(2)对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。

6.下列哪种说法是正确的?(C)
A 实例方法可直接调用超类的实例方法
B 实例方法可直接调用超类的类方法
C 实例方法可直接调用本类的类方法
D 实例方法可直接调用其他类的实例方法
解析:
实例方法:也就是对象方法,没有 static 关键字。
类方法:也就是静态方法,用static关键字修饰,是属于整个类的方法。

7.有以下代码片段:

String str1="hello";
String str2="he"+ new String("llo");
System.out.println(str1==str2);

请问输出的结果是:(D)
A true
B 都不对
C null
D false
解析:
字符串比较时的两种方式:
(1)==比较的是两个字符串的地址是否为相等(同一个地址),
(2)equals()方法比较的是两个字符串对象的内容是否相同。当然,若两个字符串引用同一个地址,使用equals()比较也返回true。
题目中是分别给两个变量赋值相同的字符串,这两个变量值相同,但是在栈中地址不同。

8.程序读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于 10 ,使用 throw 语句显式地引发异常,异常输出信息为 ”something’swrong!” ,语句为(A)
A if(i>10)throw new Exception(“something’swrong!”);
B if(i>10)throw Exception e(“something’swrong!”);
C if(i>10) throw new Exception e(“something’swrong!”);
D if(i>10)throw Exception( “something’swrong!”);
解析:
自定义异常中不需要写那个e

9.以下关于集合类 ArrayList 、 LinkedList 、 HashMap 描述错误的是:(C)
A HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
B ArrayList和LinkedList均实现了List接口
C 添加和删除元素时,ArrayList的表现更佳
D ArrayList的访问速度比LinkedList快
解析:
A选项:HashMap实现了Map接口的,它的Key和Value都可以是null,但是Hashtable中,Key和Value都不能是null。
B选项:ArrayList与LinkedList都实现了List接口,继承了AbstractList类。
C选项:ArrayList底层是动态数组是实现,随机位置添加和删除,都需要移动数组的数据,而LinkedList底层是双向链表,只需要修改Node节点的引用。所以增删元LinkedList更优于ArrayList。
D选项:查询ArrayList更优于LinkedList。

10.关于 Java 线程,下面说法错误的是(C)。
A 创建线程可以通过实现Runnable接口和继承Thread类
B java利用线程使整个系统成为异步
C 新线程一旦被创建,它将自动开始运行
解析:
A选项:创建线程的三种方法:(1)继承Thread类;(2)实现Runnable接口;(3)实现Collable接口。
B选项:可以利用线程使系统异步处理,也可加synchronized关键字使同步。
C选项:新线程需要覆写run()方法才能开始运行

11.下列与队列结构有关联的是(D)
A 函数的递归调用
B 数组元素的引用
C 多重循环的执行
D 先到先服务的作业调度
解析:
队列数据结构的存储特点:先进先出

12.下面属于黑盒测试方法的是(C)
A 语句覆盖
B 逻辑覆盖
C 边界值分析
D 路径覆盖
解析:
黑盒测试包含:等价类划分、边界值分析、因果图分析、错误猜测等。
白盒测试包含:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖等。

13.下列不能用作存储容量单位的是( C)。
A Byte
B GB
C MIPS
D KB
解析:
常见的存储容量单位换算:
1T = 1024 GB
1GB = 1024 MB
1MB = 1024 KB
1KB = 1024 B(Byte)
1B = 8b(bit)

MIPS:Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。这是衡量CPU速度的一个指标。

14.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是(D )。
A 1:1联系
B 1:m联系
C m:1联系
D m:n联系

15.下列关于栈叙述正确的是(D)。
A 算法就是程序
B 设计算法时只需要考虑数据结构的设计
C 设计算法时只需要考虑结果的可靠性
D 以上三种说法都不对
解析:
算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。

16.java语言的下面几种数组复制方法中,哪个效率最高?(B)
A for 循环逐一复制
B System.arraycopy
C Array.copyOf
D 使用clone方法
解析:
复制的效率System.arraycopy>clone>Arrays.copyOf>for循环

17.结构化程序的三种基本结构是(C)
A 递归、迭代和回溯
B 过程、函数和子程序
C 顺序、选择和循环
D 调用、返回和选择

18.下面属于软件定义阶段任务的是(A)
A 需求分析
B 软件测试
C 详细设计
D 系统维护
解析:
软件测试的生命周期:
需求分析–>测试计划–>测试设计、测试开发–>测试执行–>测试评估

19.1GB 的准确值是(C)。
A 1024×1024 Bytes
B 1024 KB
C 1024 MB
D 1000×1000 KB
解析:
常用的存储容量单位有:字节(Byte)、KB(千字节)、MB(兆字节)、GB(千兆字节)。它们之间的关系为:1字节(Byte)=8个二进制位(bits);1KB=1024B;1MB=1024KB;1GB=1024MB。因此 1GB = 1024 MB = 10241024 KB = 10241024*1024 Bytes。

20.关于 Socket 通信编程,以下描述错误的是:(D)
A 服务器端通过new ServerSocket()创建TCP连接对象
B 服务器端通过TCP连接对象调用accept()方法创建通信的Socket对象
C 客户端通过new Socket()方法创建通信的Socket对象
D 客户端通过new ServerSocket()创建TCP连接对象
解析:
Socket套接字 :就是源Ip地址,目标IP地址,源端口号和目标端口号的组合
服务器端:ServerSocket提供的实例
ServerSocket server= new ServerSocket(端口号)
客户端:Socket提供的实例
Socket soc=new Socket(ip地址,端口号)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值