东软面试题

上传人:ba****u 文档编号:145009672 上传时间:2022-08-28 格式:DOCX 页数:6 大小:18.29KB
收藏 版权申诉 举报 下载
东软面试题_第1页
第1页 / 共6页
东软面试题_第2页
第2页 / 共6页
东软面试题_第3页
第3页 / 共6页
资源描述:

《东软面试题》由会员分享,可在线阅读,更多相关《东软面试题(6页珍藏版)》请在装配图网上搜索。

1、1写一个Singleton出来(单例模式,不管你事例化多少个这个类的对象,其实都只存在一个对象。构造函数私有,就是屏蔽了构造方法,不能由构造方法来产生对象。因此你可以自己写个getInstance().由此,就可以控制整个系统中,只存在一个此类的对象。)Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。一般Singleton模式通常有几种种形式:第一种形式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在 类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

2、public class Singleton (private Singleton()(/在自己内部定义自己一个实例,是不是很奇怪?/注意这是private只供内部调用private static Singleton instance = new Singleton();这里提供了一个供外部访问本class的静态方法,可以直接访问public static Singleton getInstance() (return instance;第二种形式:public class Singleton (private static Singleton instance = null;public s

3、tatic synchronized Singleton getInstance() (这个方法比上面有所改进,不用每次都进行生成对象,只是第一次/使用时生成实例,提高了效率!if (instance=null)instancenew Singleton();return instance; 其他形式:定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些111可能会让你写一段Jdbc连Oracle的程序,并实现数据查询答:程序如下:package hello.ant;import java.sql.*;public class jdbcStrin

4、g dbUrl = jdbc:oracle:thin:127.0.0.1:1521:orcl;String theUser=admin;String thePw=manager;Connection c=null;Statement conn;ResultSet rs=null;public jdbc()tryClass.forName(oracle.jdbc.driver.OracleDriver).newInstance();c = DriverManager.getConnection(dbUrl,theUser,thePw); conn=c.createStatement();catc

5、h(Exception e)e.printStackTrace();public boolean executeUpdate(String sql)tryconn.executeUpdate(sql);return true;catch (SQLException e)e.printStackTrace();return false;public ResultSet executeQuery(String sql)rs=null;tryrs=conn.executeQuery(sql);catch (SQLException e)e.printStackTrace();return rs;pu

6、blic void close()tryconn.close();c.close();catch (Exception e)e.printStackTrace();public static void main(String args)ResultSet rs;jdbc conn = new jdbc();rs=conn.executeQuery(select * from test);trywhile (rs.next()System.out.println(rs.getString(id);System.out.println(rs.getString(name);catch(Except

7、ion e)e.printStackTrace();62、同步和异步有何异同,在什么情况下分别使用他们?举例说明。答:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数 据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的 返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。44、abstract class 和 interface 有什么区别答:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体 现某

8、些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不 能有抽象构造函数或抽象静态方法。Abstract类的子类为它们父类中的所有抽象方法提供实 现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中 实现这些方法接口(interfac e)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这 样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实

9、现类不能从接口定义中继承行为。当类实现 特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的 类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常 的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来 决定某对象的类是否实现了接口40、HashMap 和 Hashtable 的区别答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了 Map接口, 主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于 Hashtable。H

10、ashMap允许将null作为一个entry的key或者value,而Hashtable不允许。HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKeyo 因 为contains方法容易让人引起误解。Hashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Map interface 的一个实 现。最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问 Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须

11、为之提供外同步。Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。 31、介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?答:Collection FrameWork 如下:Collection 卜 List IpLinkedList IPArrayList |LVector I LStack LSetMappHashtable pHashMap LWeakHashMapCollection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素 (Elements

12、)Map提供key到value的映射65、请说出你所知道的线程同步的方法。答:wait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉 InterruptedException 异常。notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某 一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让 它们竞争。111、Collection是集合类的上级接口,继

13、承与他的接口主要有Set和ListCollections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、 线程安全化等操作11给我一个你最常见到的runtime exception 答:常见的运行时异常有如下这些ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentMo

14、dificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException,IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerExc

15、eption, ProfileDataException,ProviderException, RasterFormatException, SecurityException,SystemException, UndeclaredThrowableException,UnmodifiableSetException, UnsupportedOperationException15、error 和 exception 有什么区另ij答: error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指 望程序能处理这样的情况exception表示一种设计或实现问题。也就是说

16、,它表示如果程序运行正常,从不会发生 的情况19、接口是否可继承接口 ?抽象类是否可实现(implements)接口?抽象类是否可继承实体类(concrete class)答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前 提是实体类必须有明确的构造函数27、ArrayList 和 Vector 的区别,HashMap 和 Hashtable 的区另U答:就ArrayList与Vector主要从二方面来说.一. 同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是 同步的二. 数据增长:当需要增长时,Vect

17、or默认增长为原来一培,而ArrayList却是原来的一半就HashMap与HashTable主要从三方面来说。一. 历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现二. 同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的, 不是同步的三. 值:只有HashMap可以让你将空值作为一个表的条目的key或value35、面向对象的特征有哪些方面答:主要有以下四方面:1. 抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部

18、问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个 方面,一是过程抽象,二是数据抽象。2. 继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。 对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类 称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里 继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。3. 封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基 本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象

19、通过一个受保护的接 口访问其他对象。4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多 态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题 33数据库事务四大特性是什么?事务的:原子性、一致性、分离性、持久性 原子性、一致性、分离性、持久性原子性口事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全 部执行,要么完全不执行。这种特性称为原子性。口事务的原子性要求,如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。就是 说事务的操纵序列或者完全应用到数据库或者完

20、全不影响数据库。这种特性称为原子性。假如用户在一个事务内完成了对数据库的更新,这时所有的更新对外部世界必须是可见的,或者完全没 有更新。前者称事务已提交,后者称事务撤消(或流产)。DBMS必须确保由成功提交的事务完成的所有 操纵在数据库内有完全的反映,而失败的事务对数据库完全没有影响。一致性事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事 务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。 一致性处理数据库中对所有语义约束的保护。假如数据库的状态满足所有的完整性约束,就说该数据库 是一致的。例如,当数据库处于一致性状态S1时,对数据

21、库执行一个事务,在事务执行期间假定数据库 的状态是不一致的,当事务执行结束时,数据库处在一致性状态S2。(3) 分离性 分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它 企图进行修改的事务看到。分离性是DBMS针对并发事务间的冲突提供的安全保证。DBMS可以通过加锁在并发执行的事务间提供 不同级别的分离。假如并发交叉执行的事务没有任何控制,操纵相同的共享对象的多个并发事务的执行可 能引起异常情况。 DBMS可以在并发执行的事务间提供不同级别的分离。分离的级别和并发事务的吞吐量之间存在反比关 系。较多事务的可分离性可能会带来较高的冲突和较多的事务流产。流产的事务要消耗资源,这些资源必 须要重新被访问。因此,确保高分离级别的DBMS需要更多的开销。(4) 持久性 持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS 保证它对数据库中数据的改变应该是永久性的,耐得住任何系统故障。持久性通过数据库备份和恢复来保 证。持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。 即对已提交事务的更新能恢复。一旦一个事务被提交,DBMS必须保证提供适当 的冗余,使其耐得住系统的故障。所以,持久性主要在于DBMS的恢复性能。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!