笔试集(3)

运行时异常与一般异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
2)
说出ArrayList,Vector, LinkedList的存储性能和特性

ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
3)

设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。

public class ThreadTest1{

         private int j;

         public static void main(String args[]){

                  ThreadTest1 tt=new ThreadTest1();

                   Inc inc=tt.new Inc();

                   Dec dec=tt.new Dec();

                   for(int i=0;i<2;i++){

                            Thread t=new Thread(inc);

                            t.start();

                            t=new Thread(dec);

                            t.start();

                   }

         }

         private synchronized void inc(){

                   j++;

                  System.out.println(Thread.currentThread().getName()+"-inc:"+j);

         }

         private synchronized void dec(){

                   j--;

                  System.out.println(Thread.currentThread().getName()+"-dec:"+j);

         }

        

         class Inc implements Runnable{

                   public void run(){

                            for(int i=0;i<100;i++){

                                     inc();

                            }

                   }

         }

         class Dec implements Runnable{

                   public void run(){

                            for(int i=0;i<100;i++){

                                     dec();

                            }

                   }

         }

}
4)
事务是什么?

事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:

原子性

事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。

一致性

事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。

隔离性

由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。

持久性

事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。
5)
游标的作用?如何知道游标已经到了最后?

游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后
6)
EJB
   **1、EJB容器提供的服务

         主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。

   2、EJB的角色和三个对象

         EJB角色主要包括Bean开发者 应用组装者 部署者 系统管理员 EJB容器提供者 EJB服务器提供者

         三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类

   2、EJB的几种类型

         会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean

         会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种

         实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种

   3、bean 实例的生命周期

         对于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在缓冲池管理,而对于Entity Bean和Statefull Session Bean存在Cache管理,通常包含创建实例,设置上下文、创建EJB Object(create)、业务方法调用、remove等过程,对于存在缓冲池管理的Bean,在create之后实例并不从内存清除,而是采用缓冲池调度机制不断重用实例,而对于存在Cache管理的Bean则通过激活和去激活机制保持Bean的状态并限制内存中实例数量。

posted on 2006-12-08 14:03 youngturk 阅读(236) 评论(0)  编辑  收藏 所属分类: 笔试题


只有注册用户登录后才能发表评论。


网站导航:
 
<2006年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

公告

this year :
1 jQuery
2 freemarker
3 框架结构
4 口语英语

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

相册

EJB学习

Flex学习

learn English

oracle

spring MVC web service

SQL

Struts

生活保健

解析文件

搜索

最新评论

阅读排行榜

评论排行榜