架构师面试问题指导性框架.doc_第1页
架构师面试问题指导性框架.doc_第2页
架构师面试问题指导性框架.doc_第3页
架构师面试问题指导性框架.doc_第4页
架构师面试问题指导性框架.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

架构师面试问题指导性框架1. Java基础问题31.1. 所有Java类的基类是什么?31.2. Object类中有哪些方法?(说出三个)31.3. equals和=的差别?31.4. hashCode的作用31.5. hashCode和equals方法的关系31.6. 如何停止一个线程?31.7. Thread.setDeamon()的含义?51.8. ClassLoader的功能和工作模式?51.9. 列举几个Java Collection类库中的常用类,试简述其类结构。61.10. Input/OutputStream和Reader/Writer有何区别?何为字符,何为字节?61.11. 如何在字符流和字节流之间转换?61.12. GC垃圾收集是什么意思?怎样的对象会被收集?62. JavaEE的问题62.1. Serlvet/JSP相关62.1.1. JSP的工作原理62.1.2. Servlet中的session工作原理62.1.3. WEB层如何实现Cluster72.2. EJB相关72.2.1. EJB的类型72.2.2. EJB的工作原理72.2.3. EJB的应用领域72.3. JMS相关72.3.1. JMS的模式72.4. JDBC/JTA/JTS相关72.4.1. 用JDBC怎样从数据库中查询一条记录?72.4.2. Transaction有哪几种隔离级别?(Isolation Level)72.4.3. Global transaction的原理是什么?72.5. WebService相关82.5.1. 简述WebService是怎么实现的?82.6. Ant/maven的知识82.6.1. 用过ant或maven吗?它们是什么?有什么特点(或好处)?83. 开源软件的问题83.1. Spring相关83.1.1. Spring的核心理念是什么?83.2. iBatis/hibernate相关83.2.1. 简介hibernate和(或)ibatis,及它们的异同、优缺点。83.3. 其它软件83.3.1. Web层框架83.3.2. 数据层框架83.3.3. 普通工具类83.3.4. 测试框架83.3.5. Service框架83.3.6. 94. OOA/OOD94.1. OOD的原则94.1.1. 类A依赖类B,会产生什么问题?94.1.2. 怎样解除这种耦合?94.2. 设计模式?94.2.1. 列举一两个设计模式,举例说明其用途。94.2.2. 简述M-V-C模式解决了什么问题?95. 项目相关95.1. 项目相关的技术问题96. 对新技术敏感度96.1. Java 5语言的新特性?对我们有什么帮助?97. 其他问题107.1. 职业发展道路?愿意做技术吗?愿意做编码吗?107.2. 愿意在杭州长期发展吗?108. 其它方面的基础知识108.1. 操作系统相关问题,如虚拟内存管理108.2. 数据结构相关:如队列应用108.3. 网络相关:如TCP/IP协议基础问题108.4. http协议以及相关内容108.5. 对uml以及业务健模的考察108.6. 群集技术108.7. 版本管理:svn/cvs101. Java基础问题1.1. 所有Java类的基类是什么?java.lang.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方法等待子线程完全退出。public class TestThread private boolean exit = false; private void go() throws Exception Thread thread = new Thread(new MyRunnable(), my_thread); System.out.println(Press Enter to exit.); thread.start(); System.in.read(); exit = true; thread.join(); private class MyRunnable implements Runnable public void run() for (int i = 1; !exit; i+) System.out.println(Thread.currentThread().getName() + : + i); try Thread.sleep(1000); catch (InterruptedException e) public static void main(String args) throws Exception new TestThread().go(); 事实上,Thread自己有interrupted标志,可以通过Terrupted()或某些方法的InterruptedException来捕获中断标志。程序可改进为:public class TestThread private boolean exit = false;private void go() throws Exception exit = true; errupt(); thread.join(); private class MyRunnable implements Runnable public void run() for (int i = 1; !exit; i+) System.out.println(Thread.currentThread().getName() + : + i); 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类库中的常用类,试简述其类结构。InterfaceImplementationHistoricalSetHashSetTreeSetListArrayListLinkedListVectorStackMapHashMapTreeMapHashtableProperties还有包装器: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。2.4.3. Global transaction的原理是什么?两阶段提交。不仅可对数据库,也可对其它资源如JMS进行transaction操作。2.5. WebService相关2.5.1. 简述WebService是怎么实现的?说出soap、wsdl之类的就可以了。2.6. Ant/maven的知识2.6.1. 用过ant或maven吗?它们是什么?有什么特点(或好处)?3. 开源软件的问题3.1. Spring相关3.1.1. Spring的核心理念是什么?核心是IoC(Inversion of Control、反转控制)或DI(Dependency Injection、依赖注入)。通过IoC或DJ的方式来装配对象,解除对象与对象之间的耦合性,从而简化应用的开发、测试过程。和IoC或DJ密切相关的,还有AOP(Aspect Oriented Programming、面向切面的编程)。有了IoC,就很容易实现AOP。通过AOP,可以将额外的功能透明地附着于对象上,而不会影响到使用对象的代码。通过此种机制,就可实现很多功能:远程、异步调用、Transaction、Security、Intercepter3.2. iBatis/hibernate相关3.2.1. 简介hibernate和(或)ibatis,及它们的异同、优缺点。3.3. 其它软件3.3.1. Web层框架Webwork、Struts、Tapestry、Turbine、Spring MVC3.3.2. 数据层框架Hibernate、iBatis、Torque、OJB3.3.3. 普通工具类Jakarta commons模板工具:Velocity、Freemarker3.3.4. 测试框架Junit、Te

温馨提示

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

评论

0/150

提交评论