牛客网-Java专项练习03
答案设置为白色,框选即可显示
1.下列关于系列化和反序列化描述正确的是:
A.序列化是将数据转为n个 byte序列的过程
B.反序列化是将n个 byte转换为数据的过程
C.将类型int转换为4 byte是反序列化过程
D.将8个字节转换为long类型的数据为序列化过程
答案:AB
解析:序列化是把对象转换为字节序列的过程,为了存储在磁盘上或者进行网络传输。 反序列化是把存储在磁盘或网络节点上的字节序列恢复为对象的过程。
2.在开发中使用泛型取代非泛型的数据类型(比如用ArrayList取代ArrayList),程序的运行时性能会变得更好。()
A.正确
B.错误
答案:B
解析:泛型只是提高了数据传输安全性,并没有改变程序运行的性能
3.如下代码,执行test()函数后,屏幕打印结果为()
public class Test2
{
public void add(Byte b)
{
b = b++;
}
public void test()
{
Byte a = 127;
Byte b = 127;
add(++a);
System.out.print(a + " ");
add(b);
System.out.print(b + "");
}
}
A.127 127
B.128 127
C.129 128
D.以上都不对
答案:D
解析:add函数内实现++操作,会自动拆包成byte值传递类型,所以add函数还是不能实现自增功能。Byte类型值大小为-128~127之间。 add(++a);这里++a会越界,a的值变为-128,而b保持为127。
4.Which lines of the following will produce an error?
1. byte a1 = 2, a2 = 4, a3;
2. short s = 16;
3. a2 = s;
4. a3 = a1 * a2;
A.Line 3 and Line 4
B.Line 1 only
C.Line 3 only
D.Line 4 only
答案:A
解析:值型变量在默认情况下为int型,byte和short型在计算时会自动转换为int型计算,结果也是int 型。所以a1*a2的结果是int 型的。高级向低级必须强制类型转换,byte<char<short<int<long<float<double。
5.在Web应用程序中,( )负责将HTTP请求转换为HttpServletRequest对象
A.Servlet对象
B.HTTP服务器
C.Web容器
D.JSP网页
答案:C
解析:
http:HTTP协议(HyperText Transfer Protocol,超文本传输协议),是用于从WWW服务器传输超文本到本地浏览器的传输协议。
servlet:是一套技术标准,内含与web应用相关的一系列接口,用于为web应用实现方式提供宏观解决方案
web容器:例如tomcat,用于接受、响应客户端的请求,负责将HTTP请求转换为HttpServletRequest对象,也就是创建servlet实例对象
jsp网页:java的服务器页面,其本质也是一个servlet,由html网页代码、Java代码、jsp标签组成,当servlet处理完数据后会转发给jsp,jsp负责显示数据