天梯180408
1. 关于AWT和Swing说法正确的是?
A. Swing是AWT的子类
B. AWT在不同操作系统中显示相同的风格
C. AWT不支持事件类型,Swing支持事件模型
D. Swing在不同的操作系统中显示相同的风格
2. 在( )情况下适宜采用内联函数。
A. 函数代码小,频繁调用
B. 函数代码多,频繁调用
C. 函数体含有递归语句
D. 函数体含有循环语句
3. 下列有关Servlet的生命周期,说法不正确的是?
A. 在创建自己的Servlet时候,应该在初始化方法init()方法中创建Servlet实例
B. 在Servlet生命周期的服务阶段,执行service()方法,根据用户请求的方法,执行相应的doGet()或是doPost()方法
C. 在销毁阶段,执行destroy()方法后会释放Servlet 占用的资源
D. destroy()方法仅执行一次,即在服务器停止且卸载Servlet时执行该方法
4. (不定项)下面几个关于Java里queue的说法哪些是正确的()?
A. LinkedBlockingQueue是一个可选有界队列,不允许null值
B. PriorityQueue,LinkedBlockingQueue都是线程不安全的
C. PriorityQueue是一个无界队列,不允许null值,入队和出队的时间复杂度是O(log(n))
D. PriorityQueue,ConcurrentLinkedQueue都遵循FIFO原则
5. (不定项)下面哪个语句是创建数组的正确语句?( )
A. float f[][] = new float[6][6];
B. float []f[] = new float[6][6];
C. float f[][] = new float[][6];
D. float [][]f = new float[6][6];
E. float [][]f = new float[6][];
//----------分割线-------------
D
A
A
AC
ABDE
答案详解:
1. 你只要记住Swing 为解决 AWT 存在的问题而新开发的图形界面包。Swing是对AWT的改良和扩展。
2. 调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到 转去执行该函数前的地方。这种转移操作要求在转去前要保护现场并记忆执行的地址,转回后先要恢复现场,并按原来保存地址继续执行。也就是通常说的压栈和出栈。因此,函数调用要有一定的时间和空间方面的开销。那么对于那些函数体
代码不是很大,又频繁调用的函数来说,这个时间和空间的消耗会很大。
那怎么解决这个性能消耗问题呢,这个时候需要引入内联函数了。内联函数就是在程序编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体来直接进行替换。显然,这样就不会产生转去转回的问题,但是由于在编译时将函数体中的代码被替代到程序中,因此会增加目标程序代码量,进而增加空间开销,而在时间代销上不象函数调用时
那么大,可见它是以目标代码的增加为代价来换取时间的节省。
在java中的内联函数长什么模样呢?在java中使用final关键字来指示一个函数为内联函数,例如:
public final void method1() {
//TODO something
}
这个指示并不是必需的。final关键字只是告诉编译器,在编译的时候考虑性能的提升,可以将final函数视为内联函数。 但最后编译器会怎么处理,编译器会分析将final函数处理为内联和不处理为内联的性能比较了。
3.
Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。
(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet
(2)创建:通过调用servlet构造函数创建一个servlet对象
(3)初始化:调用init方法初始化
(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求
(5)卸载:调用destroy方法让servlet自己释放其占用的资源
4. LinkedBlockingQueue: 基于链接点的可选定的队列,不接受null,线程安全
PriorityQueue: 基于优先级堆的队列。实现不同步。 如果任何线程修改队列,多线程不应同时访问PriorityQueue实例。 而是使用线程安全的PriorityBlockingQueue类。
5 B选项没想到吧!哈哈