牛客刷题日记(2021-12-8)
题目:
以下哪个接口的定义是正确的?( )
interface B
{ void print() { } ;}
interface B
{ static void print() ;}
abstract interface B extends A1, A2 //A1、A2为已定义的接口
{ abstract void print(){ };}
interface B
{ void print();}
解析:
正确答案: D
选D,
A,接口中方法的默认修饰符时public abstract,抽象方法可是没有方法体的,没有大括号{}
B,JDK8中,接口中的方法可以被default和static修饰,但是!!!被修饰的方法必须有方法体。
C,注意一下,接口是可以多继承的。整个没毛病,和A选项一样,抽象方法不能有方法体
题目:
下面哪种流可以用于字符输入:
java.io.inputStream
java.io.outputStream
java.io.inputStreamReader
java.io.outputStreamReader
解析:
正确答案: C
首先B和D排除,题目是要求输入。
A和C之间,inputStream是字节流输入流;而inputStreamReader是对字符流的处理,inputStreamReader将字符流处理成字节流,题目要求是用于处理字符输入,所以选C。
题目:
在面向对象编程里,经常使用is-a来说明对象之间的继承关系,下列对象中不具备继承关系的是?()
手机与小米手机
企业家与雷军
编程语言与Java
中国与北京
解析:
正确答案: D
is-a 的关系:
A:小米手机是一个手机,没毛病
B:雷军是一个企业家,没毛病
C:Java是一门编程语言,没毛病
D:北京是一个中国?!这…
题目:
以下程序段的输出结果为:
public class EqualsMethod
{
public static void main(String[] args)
{
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.print(n1 == n2);
System.out.print(",");
System.out.println(n1 != n2);
}
}
false,false
false,true
true,false
true,true
解析:
答案:B
首先 我们要知道 == 这个比较符号
可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。
"==“和”!="比较的是地址 指第一个new()c出来的地址
所以因为两次new() 分出的内存也不同
所以
System.out.print(n1 == n2);返回 false
!=就返回true
题目:
默认RMI采用的是什么通信协议?
HTTP
UDP/IP
TCP/IP
Multicast
解析:
正确答案: C
RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制。使用这种机制,某一台计算机上的对象可以调用另外一台计算机上的对象来获取远程数据。RMI是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径。在过去,TCP/IP套接字通讯是远程通讯的主要手段,但此开发方式没有使用面向对象的方式实现开发,在开发一个如此的通讯机制时往往令程序员感觉到乏味,对此RPC(Remote Procedure Call)应运而生,它使程序员更容易地调用远程程序,但在面对复杂的信息传讯时,RPC依然未能很好的支持,而且RPC未能做到面向对象调用的开发模式。针对RPC服务遗留的问题,RMI出现在世人面前,它被设计成一种面向对象的通讯方式,允许程序员使用远程对象来实现通信,并且支持多线程的服务,这是一次远程通讯的***,为远程通信开辟新的里程碑。
RMI的开发步骤
先创建远程接口及声明远程方法,注意这是实现双方通讯的接口,需要继承Remote
开发一个类来实现远程接口及远程方法,值得注意的是实现类需要继承UnicastRemoteObject
通过javac命令编译文件,通过java -server 命令注册服务,启动远程对象 最后客户端查找远程对象,并调用远程方法所以选C
题目:
try块后必须有catch块。()
正确
错误
解析:
正确答案: B
catch可以省略,try的形式有三种:
try-catch
try-finally
try-catch-finally
但catch和finally语句不能同时省略!
题目:
关于匿名内部类叙述正确的是? ( )
匿名内部类可以继承一个基类,不可以实现一个接口
匿名内部类不可以定义构造器
匿名内部类不能用于形参
以上说法都不正确
解析:
正确答案: B
由于构造器的名字必须与类名相同,而匿名类没有类名,所以匿名类不能有构造器。
题目:
下面代码的运行结果是( )
public class Arraytest{
int a[] = new int[6];
public static void main ( String arg[] ) {
System.out.println ( a[0] );
}
}
null
0
编译出错
运行出错
解析:
正确答案: C
在static方法中是不能访问非静态变量 a 的,需要将 a 声明为static,答案才会是 0 ,否则是编译出错
题目:
如何获取ServletContext设置的参数值?
context.getParameter()
context.getInitParameter()
context.getAttribute()
context.getRequestDispatcher()
解析:
正确答案: B
getParameter()是获取POST/GET传递的参数值;
getInitParameter获取Tomcat的server.xml中设置Context的初始化参数
getAttribute()是获取对象容器中的数据值;
getRequestDispatcher是请求转发。
题目:
下列正确的有()
call by value不会改变实际参数的数值
call by reference能改变实际参数的参考地址
call by reference不能改变实际参数的参考地址
call by reference能改变实际参数的内容
解析:
正确答案: A C D
该题考察的是值传递和引用传递参数的调用。
值传递是将变量的一个副本传递到方法中,方法中如何操作该变量副本,都不会改变原变量的值。
引用传递是将变量的内存地址传递给方法,方法操作变量时会找到保存在该地址的变量,对其进行操作。会对原变量造成影响。