牛客网选择题

1、在 java 中,一个类可同时定义为许多同名的方法,这些方法的形式参数个数,类型或顺序各不相同,传回的值可能各不相同,这种面向对象的特性称为(C)
A、隐藏
B、覆盖
C、重载
D、无此特性
解析:
重载(Overload)
什么是重载?在一个、
重载的要求:方法名必须保持一致,参数列表不一致,与返回值无关
注意:构造函数可重载!并且可以有private等修饰符
重写(Override)
重写的前提:必须存在继承关系
什么是重写?子类和父类中出现了同名的方法名,我们就称之为重写
什么情况下需要重写?父类中的方法无法满足于子类的需求
重写的要求:方法名和参数列表必须一致,子类方法的修饰符必须大于或等于父类方法的修饰符,子类方法的返回值必须小于或等于父类方法的返回值,子类方法抛出的异常必须小于或等于父类方法抛出的异常!
注:声明为final的方法不能重写但可重载


2、关于容器下面说法正确的是? (D)
A、列表(List)和集合(Set)存放的元素都是可重复的。
B、列表(List)和集合(Set)存放的元素都是不可重复的。
C、映射(Map)<key,value>中key是可以重复的。
D、映射(Map)<key,value>中value是可以重复的。
解析:
列表(List)的元素是有序、可重复的。
集合(Set)的元素是无序、不可重复的。
map是使用的是键值对存放,可一对多,key不重复,value是可重复的


3、Which of the following statements are valid array declaration?(A)
翻译:下面哪一个数组是有效的数组声明
(A) int number();
(B) float average[];
© double[] marks;
(D) counter int[];
A、(B) & ©
B、(A)
C、(A) & ©
D、(D)
解析:
首先,题目中的 valid是有效的意思,而invalid是无效的意思
其次用排除法做


4、现有如下代码段:
1 x = 2; 1
2 while(x<n/2)
3 x = 2*x; 2
假设n>=0,则其时间复杂度应为(A)
A、O(log2(n))
B、O(nlog2(n))
C、O(n)
D、O(n^2)
解析:
语句1的频度是1,设语句2的频度是f(n),则2^f(n)<=n/2;f(n)<=log2(n/2)近似等于f(n)<=log2(n),
取最大值f(n)=log2(n),T(n)=O(log2(n))


5、BufferedReader的父类是以下哪个?(D)
A、FilterReader
B、InputStreamReader
C、PipedReader
D、Reader
解析:
看后缀,就知道谁是他爸,前缀代表功能!


6、以下代码执行的结果显示是多少(D)?
在这里插入图片描述

A、true,false,true
B、false,true,false
C、true,true,false
D、false,false,true
解析:
Integer范围-128-127。两个Integer类型数据比较,在其范围内则之比较其值,
如果超出范围则new Integer(),地址不同则比较结果为false


7、下列各项说法中错误的是(B)
A、共享数据的所有访问都必须使用synchronized加锁
B、共享数据的访问不一定全部使用synchronized加锁
C、所有的对共享数据的访问都是临界区
D、临界区必须使用synchronized加锁
解析:
共享数据的所有访问一定要作为临界区,用synchronized标识,这样保证了所有的对共享数据的操作都通过对象锁的机制进行控制。


8、下列程序的运行结果为(A)
1public void getCustomerInfo() {
2 try {
3 // do something that may cause an Exception
4 } catch (java.io.FileNotFoundException ex) {
5 System.out.print(“FileNotFoundException!”);
6 } catch (java.io.IOException ex) {
7 System.out.print(“IOException!”);
8 } catch (java.lang.Exception ex) {
9 System.out.print(“Exception!”);
10 }
11 }
A、IOException!
B、IOException!Exception!
C、FileNotFoundException!IOException!
D、FileNotFoundException!IOException!Exception!
解析:
题目说抛出一个异常,但是没说具体是什么异常,那么就要分情况了:
1.如果抛出一个FileNotFoundException(或其子类),那么最终结果就打印FileNotFoundException
2.如果抛出一个IOException,或者IOException的子类(不包含FileNotFoundException及其子类),那么最终结果就打印IOException
3.如果抛出一个Exception(不包含IOException及其子类),那么最终结果就打印Exception.
以上,所以3个皆有可能.但是,不管是哪一种情况,只会输出其中之一。
从答案上来看,B,C,D的输出情况是不存在的。因此选A


9、jre 判断程序是否执行结束的标准是(A)
A、所有的前台线程执行完毕
B、所有的后台线程执行完毕
C、所有的线程执行完毕
D、和以上都无关
解析:
main()函数即主函数,是一个前台线程,前台进程是程序中必须执行完成的,而后台线程则是java中所有前台结束后结束,不管有没有完成,后台线程主要用与内存分配等方面。
前台线程和后台线程的区别和联系:
1、后台线程不会阻止进程的终止。属于某个进程的所有前台线程都终止后,该进程就会被终止。所有剩余的后台线程都会停止且不会完成。
2、可以在任何时候将前台线程修改为后台线程,方式是设置Thread.IsBackground 属性。
3、不管是前台线程还是后台线程,如果线程内出现了异常,都会导致进程的终止。
4、托管线程池中的线程都是后台线程,使用new Thread方式创建的线程默认都是前台线程。
说明:
应用程序的主线程以及使用Thread构造的线程都默认为前台线程
使用Thread建立的线程默认情况下是前台线程,在进程中,只要有一个前台线程未退出,进程就不会终止。
主线程就是一个前台线程。而后台线程不管线程是否结束,只要所有的前台线程都退出(包括正常退出和异常退出)后,进程就会自动终止。一般后台线程用于处理时间较短的任务,如在一个Web服务器中可以利用后台线程来处理客户端发过来的请求信息。而前台线程一般用于处理需要长时间等待的任务,如在Web服务器中的监听客户端请求的程序,或是定时对某些系统资源进行扫描的程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值