2019年12月17日 java1

考点1 JSP内置对象

下面有关JSP内置对象的描述,说法错误的是?

  • A session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止
  • B request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应
  • C application对象:多个application对象实现了用户间数据的共享,可存放全局变量
  • D response对象:response对象包含了响应客户请求的有关信息

解析

显示答案/隐藏答案正确答案: C

application对象是共享的,多个用户共享一个,以此实现数据共享和通信
JSP内置对象和属性列举如下:
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2.response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
3.session对象
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.
4.out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
5.page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
6.application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
7.exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
8.pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。
9.config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

考点2 集合 异常 接口 继承

下面叙述那个是正确的?()

  • A java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。
  • B 在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。
  • C java接口包含函数声明和变量声明。
  • D java中,子类不可以访问父类的私有成员和受保护的成员。

解析

显示答案/隐藏答案正确答案: B

创建对象比方法调用内存开销大

B选项说的情况就是我们自定义异常的情况,因为函数调用是入栈出栈,栈是在寄存器之下的速度最快,且占的空间少,而自定义异常是存在堆中,肯定异常的内存开销大!所以B对。

接口中只有常量定义 没有变量声明

C选项说的是接口包含方法声明和变量声明。因为接口中方法默认是
abstract public,所以在接口只写函数声明是符合语法规则。但是变量默认是用public
final static 修饰的,意思它是静态常量,常量不管在接口中还是类中必须在声明时初始化!所以C的后半句是错的,必须在声明时并给出初始化!

考点3 静态成员和普通成员的执行顺序

以下代码的输出结果是?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class B
{
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println("构造块");
}
static
{
System.out.println("静态块");
}
public static void main(String[] args)
{
B t = new B();
}
}
  • A 静态块 构造块 构造块 构造块
  • B 构造块 静态块 构造块 构造块
  • C 构造块 构造块 静态块 构造块
  • D 构造块 构造块 构造块 静态块

解析 多个静态成员按顺序执行

显示答案/隐藏答案正确答案: C