1. A 是抽象父类或接口, B , C 派生自 A ,或实现 A ,现在 Java 源代码中有如下声明:
1. A a0=new A();
2. A a1 =new B();
3. A a2=new C();
问以下哪个说法是正确的?( )
A 第1行不能通过编译
B 第1、2行能通过编译,但第3行编译出错
C 第1、2、3行能通过编译,但第2、3行运行时出错
D 第1行、第2行和第3行的声明都是正确的
正确答案:A
解析:
抽象类或接口不能实例化。
第1行肯定不能通过编译。
第2行和第3行,若B和C是抽象父类或接口,也不能通过编译。
题目不严谨。
2. J2EE中,当把来自客户机的HTTP请求委托给servlet时,会调用HttpServlet的( )方法
A service
B doget
C dopost
D init
正确答案:A
解析:
HttpServlet容器响应Web客户请求流程如下:
1)Web客户向Servlet容器发出Http请求;
2)Servlet容器解析Web客户的Http请求;
3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;
4)Servlet容器创建一个HttpResponse对象;
5)Servlet容器调用HttpServlet的service方法,这个方法中会根据request的Method来判断具体是执行doGet还是doPost,把HttpRequest和HttpResponse对象作为service方法的参数传给HttpServlet对象;
6)HttpServlet调用HttpRequest的有关方法,获取HTTP请求信息;
7)HttpServlet调用HttpResponse的有关方法,生成响应数据;
8)Servlet容器把HttpServlet的响应结果传给Web客户。
doGet() 或 doPost() 是创建HttpServlet时需要覆盖的方法.
3. 在一个基于分布式的游戏服务器系统中,不同的服务器之间,哪种通信方式是不可行的()?
A 管道
B 消息队列
C 高速缓存数据库
D 套接字
正确答案:A
解析:
对于管道,有下面这几种类型:
①普通管道(PIPE):通常有两种限制,一是单工,即只能单向传输;二是血缘,即常用于父子进程间(或有血缘关系的进程间)。
②流管道(s_pipe):去除了上述的第一种限制,实现了双向传输。
③命名管道(name_pipe):去除了上述的第二种限制,实现了无血缘关系的不同进程间通信。
显然,要求是对于不同的服务器之间的通信,是要要求全双工形式的,而管道只能是半双工,虽然可以双向,但是同一时间只能有一个方向传输,全双工和半双工的区别可以如下图示理解:
4. 下面哪个不属于HttpServletResponse接口完成的功能?
A 设置HTTP头标
B 设置cookie
C 读取路径信息
D 输出返回数据
正确答案:C
解析:
A:设置HTTP头标
response.setHeader("Refresh","3"); //三秒刷新页面一次
B:设置cookie
Cookie c1 = new Cookie("username","only"); response.addCookie(c1);
C(错误):读取路径信息,request读取路径信息
从request获取各种路径总结 request.getRealPath("url"); // 虚拟目录映射为实际目录 request.getRealPath("./"); // 网页所在的目录 request.getRealPath("../"); // 网页所在目录的上一层目录 request.getContextPath(); // 应用的web目录的名称
D:输出返回数据
HttpServleteResponse.getOutputStream().write()
5. 已知 boolean result = false,则下面哪个选项是合法的:
A result=1
B result=true;
C if(result!=0) {//so something…}
D if(result) {//do something…}
正确答案:BD
解析:
1、boolean类型只有两个直接量值:true和false.
2、除成员变量会有默认初始值外,其他变量必须在第一次使用之前初始化
6. 下列符号中可以在 java 程序里表示单行注释的是( )
A --
B /* ……*/
C //
D /** ……*/
正确答案:C
7. 程序文件名必须与公共外部类的名称完全一致(包括大小写).
A 正确
B 错误
正确答案:A
解析:
一个java文件里可以有多个class,但是只能有一个public class外部类,并且类名必须和.java文件名相同
8. 问这个程序的输出结果。
class Base
{
public void method()
{
System.out.println("Base");
}
}
class Son extends Base
{
public void method()
{
System.out.println("Son");
}
public void methodB()
{
System.out.println("SonB");
}
}
public class Test01
{
public static void main(String[] args)
{
Base base = new Son();
base.method();
base.methodB();
}
}
A Base SonB
B Son SonB
C Base Son SonB
D 编译不通过
正确答案:D
解析:
多态成员访问特点
成员变量:编译看左边,运行看左边
静态变量:编译看左边,运行看左边
成员方法:编译看左边,运行看右边
静态方法:编译看左边,运行看左边
9. 以下 json 格式数据,错误的是
A {company:4399}
B {"company":{"name":[4399,4399,4399]}}
C {[4399,4399,4399]}
D {"company":[4399,4399,4399]}
E {"company":{"name":4399}}
正确答案:AC
解析:
JSON由{键:值}组成,需要注意的是:
1)键用引号(单双都行)引起来,也可以不使用引号;
2)值得取值类型:
1. 数字(整数或浮点数)
2. 字符串(在双引号中)
3. 逻辑值(true 或 false)
4. 数组(在方括号中) {"persons":[value1 , value2]}
5. JSON对象(在花括号中) {"address":{"province":"陕西"....}}
6. null
据此分析,BDE是对的,A中冒号是中文冒号,C中没有键
10. 下面的Java赋值语句哪些是有错误的 ()
A int i =1000;
B float f = 45.0;
C char s = ‘\u0639’;
D Object o = ‘f’;
E String s = "hello,world\0";
F Double d = 100;
正确答案:BF
解析:
b:小数如果不加 f 后缀,默认是double类型。double转成float向下转换,意味着精度丢失,所以要进行强制类型转换。
c:是使用unicode表示的字符。
d:'f' 字符会自动装箱成包装类,就可以向上转型成Object了。
f:整数默认是int类型,int类型不能转型为Double,最多通过自动装箱变为Integer但是Integer与Double没有继承关系,也没法进行转型。
标签:HttpServlet,4399,Java,正确,编译,request,----,牛客,解析 From: https://blog.csdn.net/weixin_62803673/article/details/142937657