当前位置:文档之家› (完整版)架构师面试问题指导性框架

(完整版)架构师面试问题指导性框架

架构师面试问题指导性框架1. Java基础问题 (3)1.1. 所有Java类的基类是什么? (3)1.2. Object类中有哪些方法?(说出三个) (3)1.3. equals和==的差别? (3)1.4. hashCode的作用 (3)1.5. hashCode和equals方法的关系 (3)1.6. 如何停止一个线程? (3)1.7. Thread.setDeamon()的含义? (5)1.8. ClassLoader的功能和工作模式? (5)1.9. 列举几个Java Collection类库中的常用类,试简述其类结构。

(6)1.10. Input/OutputStream和Reader/Writer有何区别?何为字符,何为字节? (6)1.11. 如何在字符流和字节流之间转换? (6)1.12. GC垃圾收集是什么意思?怎样的对象会被收集? (6)2. JavaEE的问题 (6)2.1. Serlvet/JSP相关 (6)2.1.1. JSP的工作原理 (6)2.1.2. Servlet中的session工作原理 (6)2.1.3. WEB层如何实现Cluster (7)2.2. EJB相关 (7)2.2.1. EJB的类型 (7)2.2.2. EJB的工作原理 (7)2.2.3. EJB的应用领域 (7)2.3. JMS相关 (7)2.3.1. JMS的模式 (7)2.4. JDBC/JTA/JTS相关 (7)2.4.1. 用JDBC怎样从数据库中查询一条记录? (7)2.4.2. Transaction有哪几种隔离级别?(Isolation Level) (7)2.4.3. Global transaction的原理是什么? (7)2.5. WebService相关 (8)2.5.1. 简述WebService是怎么实现的? (8)2.6. Ant/maven的知识 (8)2.6.1. 用过ant或maven吗?它们是什么?有什么特点(或好处)? (8)3. 开源软件的问题 (8)3.1. Spring相关 (8)3.1.1. Spring的核心理念是什么? (8)3.2. iBatis/hibernate相关 (8)3.2.1. 简介hibernate和(或)ibatis,及它们的异同、优缺点。

(8)3.3. 其它软件 (8)3.3.1. Web层框架 (8)3.3.2. 数据层框架 (8)3.3.3. 普通工具类 (8)3.3.4. 测试框架 (8)3.3.5. Service框架 (8)3.3.6. (9)4. OOA/OOD (9)4.1. OOD的原则 (9)4.1.1. 类A依赖类B,会产生什么问题? (9)4.1.2. 怎样解除这种耦合? (9)4.2. 设计模式? (9)4.2.1. 列举一两个设计模式,举例说明其用途。

(9)4.2.2. 简述M-V-C模式解决了什么问题? (9)5. 项目相关 (9)5.1. 项目相关的技术问题 (9)6. 对新技术敏感度 (9)6.1. Java 5语言的新特性?对我们有什么帮助? (9)7. 其他问题 (10)7.1. 职业发展道路?愿意做技术吗?愿意做编码吗? (10)7.2. 愿意在杭州长期发展吗? (10)8. 其它方面的基础知识 (10)8.1. 操作系统相关问题,如虚拟内存管理 (10)8.2. 数据结构相关:如队列应用 (10)8.3. 网络相关:如TCP/IP协议基础问题 (10)8.4. http协议以及相关内容 (10)8.5. 对uml以及业务健模的考察 (10)8.6. 群集技术 (10)8.7. 版本管理:svn/cvs (10)1.Java基础问题1.1.所有Java类的基类是什么?ng.Object1.2.Object类中有哪些方法?(说出三个)// 对象相关getClass()clone() - protectedtoString()equals(Object)hashCode()// 线程相关notify()notifyAll()wait([long[, int]])// GC相关finalize()1.3.equals和==的差别?equals为对象相等。

==代表引用相等(即同一个对象)。

Object.equals的实现和==相同,但子类可以覆盖此方法,以便实现不同的比较算法,例如String.equals逐字比较。

1.4.hashCode的作用在HashMap或HashSet中,作为杂凑值,以提高查找的性能。

Object.hashCode实际上返回的是对象的引用地址,但子类可以覆盖此方法,实现不同的杂凑算法。

1.5.hashCode和equals方法的关系如果两个对象equals相等,那么hashCode必须相等。

反之,则不一定:hashCode相等,可能equals不等。

但这个概率不能太高,否则将增加HashMap的冲突可能性,而降低查找的效率。

1.6.如何停止一个线程?设置一个标记,让线程自行停止。

必要时,主线程执行join方法等待子线程完全退出。

事实上,Thread自己有interrupted标志,可以通过Thread.interrupted()或某些方法的InterruptedException来捕获中断标志。

程序可改进为:try {Thread.sleep(1000);} catch (InterruptedException e) {return;}}}}……}1.7.Thread.setDeamon()的含义?一个Daemon线程是一个在背景执行服务的线程,例如网络服务器倾听连接端口的服务、隐藏的系统线程如垃圾收集线程或其它JVM 建立的线程,如果所有的非Daemon的线程都结束了,则Daemon线程自动就会终止。

Thread.setDaemon(true)就是设置一个线程为daemon线程。

该方法必须在Thread.start()之前执行。

并且daemon线程创建的子线程,自动成为daemon线程。

1.8.ClassLoader的功能和工作模式?ClassLoader的功能是读取二进制码,生成Class对象。

ClassLoader使用的是委托模式(delegation模式)。

ClassLoader呈树状结构,每个结点代表一个ClassLoader。

一般来说,ClassLoader查找一个类时,会先询问parent ClassLoader,如果找不到,才会在自身查找。

下面是JavaEE ClassLoader的常见结构:(System Class Loader之前其实省略了一个Bootstrap Class Loader,用来装载jre/lib下的JDK基本类)1.9.列举几个Java Collection类库中的常用类,试简述其类结构。

Interface Implementation HistoricalSet HashSet TreeSetList ArrayList LinkedList Vector StackMap HashMap TreeMap Hashtable Properties还有包装器:Unmodifiable collectionsSynchronized collectionsSingleton collections等。

1.10.Input/OutputStream和Reader/Writer有何区别?何为字符,何为字节?1.11.如何在字符流和字节流之间转换?1.12.GC垃圾收集是什么意思?怎样的对象会被收集?2.JavaEE的问题2.1.Serlvet/JSP相关2.1.1.JSP的工作原理JSP会先转换成Servlet类,然后再执行。

2.1.2.Servlet中的session工作原理通过JSESSIONID来索引session的数据。

通常将JSESSIONID保存在cookie中,但也可以编码到URL中。

Session的数据是保存在服务端的。

具体的实现方式由应用服务器决定。

2.1.3.WEB层如何实现Cluster关键是解决session的问题。

可以通过sticky server的方式,也可以通过session复制的机制。

如果Web应用不使用session(无状态的),则可以将请求随机分发到任何一台对等的应用服务器上。

2.2.EJB相关2.2.1.EJB的类型Stateless Session Beans、Stateful Session Beans、Entity Beans、Message-Driven Beans。

2.2.2.EJB的工作原理Session Bean和Entity Bean通过Stub来实现Remote和Local调用。

调用时,可以插入特殊的逻辑:如安全、事务管理。

Message-Driven Bean通过监听JMS对象来触发。

同样支持安全、事务。

2.2.3.EJB的应用领域Stateless Session Bean和Message-Driven Bean目前用得比较多。

前者常用于远程/本地访问业务逻辑;后者常用于异步调用。

由于使用了Spring这样的轻量框架,EJB的应用越来越少。

2.3.JMS相关2.3.1.JMS的模式Queue模式:point-to-point(点对点),一头发消息,一头收消息。

消息收掉就没了,两个接收者不能收到同一个消息。

Topic模式:publish-subscriber(发布、订阅),一个人发消息,多个订阅topic的人接收消息。

多个接收者能够收到同一个topic中的同一个消息。

2.4.JDBC/JTA/JTS相关2.4.1.用JDBC怎样从数据库中查询一条记录?2.4.2.Transaction有哪几种隔离级别?(Isolation Level)数据在修改过程中的中间状态对其它事务的可见程度,和其它事务修改数据的中间状态对本事务的可见性。

1.READ UNCOMMITTED --Dirty reads, non-repeatable reads, and phantom reads are all allowed;2.READ COMMITTED --Dirty reads are prevented; non-repeatable reads and phantom reads are allowed.;3.REPEATABLE READ --Dirty reads and non-repeatable reads are prevented; phantom reads are allowed;4.SERIALIZABLE --Dirty reads, non-repeatable reads, and phantom reads are all prevented;Oracle支持两种:READ COMMITTED(默认)、SERIALIZABLE。

相关主题