架构师面试问题指导性框架.docx

上传人:b****6 文档编号:6972190 上传时间:2023-01-13 格式:DOCX 页数:8 大小:38.97KB
下载 相关 举报
架构师面试问题指导性框架.docx_第1页
第1页 / 共8页
架构师面试问题指导性框架.docx_第2页
第2页 / 共8页
架构师面试问题指导性框架.docx_第3页
第3页 / 共8页
架构师面试问题指导性框架.docx_第4页
第4页 / 共8页
架构师面试问题指导性框架.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

架构师面试问题指导性框架.docx

《架构师面试问题指导性框架.docx》由会员分享,可在线阅读,更多相关《架构师面试问题指导性框架.docx(8页珍藏版)》请在冰豆网上搜索。

架构师面试问题指导性框架.docx

架构师面试问题指导性框架

架构师面试问题指导性框架

1.Java基础问题

1.1.所有Java类的基类是什么

1.2.类中有哪些方法(说出三个)

.");

();

exit=true;

();

}

privateclassMyRunnableimplementsRunnable{

publicvoidrun(){

for(inti=1;!

exit;i++){

+":

"+i);

try{

(1000);

}catch(InterruptedExceptione){

}

}

}

}

publicstaticvoidmain(String[]args)throwsException{

newTestThread().go();

}

}

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

程序可改进为:

publicclassTestThread{

privatebooleanexit=false;

privatevoidgo()throwsException{

……

exit=true;

();

();

}

privateclassMyRunnableimplementsRunnable{

publicvoidrun(){

for(inti=1;!

exit;i++){

+":

"+i);

try{

(1000);

}catch(InterruptedExceptione){

return;

}

}

}

}

……

}

1.3.()的含义

一个Daemon线程是一个在背景执行服务的线程,例如网络服务器倾听连接端口的服务、隐藏的系统线程如垃圾收集线程或其它JVM建立的线程,如果所有的非Daemon的线程都结束了,则Daemon线程自动就会终止。

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

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

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

1.4.ClassLoader的功能和工作模式

ClassLoader的功能是读取二进制码,生成Class对象。

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

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

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

下面是JavaEEClassLoader的常见结构:

(SystemClassLoader之前其实省略了一个BootstrapClassLoader,用来装载jre/lib下的JDK基本类)

1.5.列举几个JavaCollection类库中的常用类,试简述其类结构。

Interface

Implementation

Historical

Set

HashSet

 

TreeSet

 

 

List

 

ArrayList

 

LinkedList

VectorStack

Map

HashMap

 

TreeMap

 

HashtableProperties

还有包装器:

Unmodifiablecollections

Synchronizedcollections

Singletoncollections

等。

1.6.Input/OutputStream和Reader/Writer有何区别何为字符,何为字节

1.7.如何在字符流和字节流之间转换

1.8.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的问题。

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

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

2.2.EJB相关

2.2.1.EJB的类型

StatelessSessionBeans、StatefulSessionBeans、EntityBeans、Message-DrivenBeans。

2.2.2.EJB的工作原理

SessionBean和EntityBean通过Stub来实现Remote和Local调用。

调用时,可以插入特殊的逻辑:

如安全、事务管理。

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

同样支持安全、事务。

2.2.3.EJB的应用领域

StatelessSessionBean和Message-DrivenBean目前用得比较多。

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

由于使用了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有哪几种隔离级别(IsolationLevel)

数据在修改过程中的中间状态对其它事务的可见程度,和其它事务修改数据的中间状态对本事务的可见性。

1.READUNCOMMITTED--Dirtyreads,non-repeatablereads,andphantomreadsareallallowed;

2.READCOMMITTED--Dirtyreadsareprevented;non-repeatablereadsandphantomreadsareallowed.;

3.REPEATABLEREAD--Dirtyreadsandnon-repeatablereadsareprevented;phantomreadsareallowed;

4.SERIALIZABLE--Dirtyreads,non-repeatablereads,andphantomreadsareallprevented;

Oracle支持两种:

READCOMMITTED(默认)、SERIALIZABLE。

2.4.3.Globaltransaction的原理是什么

两阶段提交。

不仅可对数据库,也可对其它资源如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(InversionofControl、反转控制)或DI(DependencyInjection、依赖注入)。

通过IoC或DJ的方式来装配对象,解除对象与对象之间的耦合性,从而简化应用的开发、测试过程。

和IoC或DJ密切相关的,还有AOP(AspectOrientedProgramming、面向切面的编程)。

有了IoC,就很容易实现AOP。

通过AOP,可以将额外的功能透明地附着于对象上,而不会影响到使用对象的代码。

通过此种机制,就可实现很多功能:

远程、异步调用、Transaction、Security、Intercepter……

3.2.iBatis/hibernate相关

3.2.1.简介hibernate和(或)ibatis,及它们的异同、优缺点。

3.3.其它软件

3.3.1.Web层框架

Webwork、Struts、Tapestry、Turbine、SpringMVC……

3.3.2.数据层框架

Hibernate、iBatis、Torque、OJB……

3.3.3.普通工具类

Jakartacommons……

模板工具:

Velocity、Freemarker……

3.3.4.测试框架

Junit、Testng、Cactus、HttpUnit……

3.3.5.Service框架

Spring、HiveMind、Avalon……

3.3.6.……

4.OOA/OOD

4.1.OOD的原则

4.1.1.类A依赖类B,会产生什么问题

A的扩展性会有问题:

如果希望扩展A,使之操作另一个对象C,则必须修改A的代码。

A的稳定性会有问题:

对B的修改将会影响到A(可能需要重编译A)。

4.1.2.怎样解除这种耦合

使用接口:

A依赖接口I,B实现接口I。

使用接口和适配器(如果B不能实现接口I):

A依赖接口I,适配器B'实现接口I,并且内部依赖B。

4.2.设计模式

4.2.1.列举一两个设计模式,举例说明其用途。

4.2.2.简述M-V-C模式解决了什么问题

5.项目相关

5.1.项目相关的技术问题

6.对新技术敏感度

6.1.Java5语言的新特性对我们有什么帮助

Generics

新的for语法

Autoboxing/unboxing

Enum枚举

可变的参数

StaticImport导入常量和静态方法

Annotations(Metadata)

7.其他问题

7.1.职业发展道路愿意做技术吗愿意做编码吗

7.2.愿意在杭州长期发展吗

8.其它方面的基础知识

8.1.操作系统相关问题,如虚拟内存管理

8.2.数据结构相关:

如队列应用

8.3.网络相关:

如TCP/IP协议基础问题

8.4.http协议以及相关内容

8.5.对uml以及业务健模的考察

8.6.群集技术

8.7.版本管理:

svn/cvs

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1