您的位置:首页 > 职场人生

Java工程师面试题(含答案)

2018-03-31 20:12 260 查看
1.web中的forward和redirect的区别?
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
 
2. xml在解释的时候DOM和SAX协议的区别和含义?
DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问
SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问

3说明JNDI、JMS、JTA、RMI的意思?
JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。
JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,翻译为Java消息服务。JMS支持点对点和发布/订阅两种消息模型。
JTA(Java Transaction API) 为 J2EE 平台提供了分布式事务服务。要用 JTA 进行事务界定,应用程序要调用 javax.transaction.UserTransaction接口中的方法.
RMI是Java的一组拥护开发分布式应用程序的API。RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(JavaRemote Method Protocol)。它大大增强了Java开发分布式应用的能力

4.单例模式
Public class Signle{
Private Signle(){
}
Pirvate static Signle signle = new Signle();
Public static Signlegets(){
Retrun signle;
}
}

5数据库中left join的意思,和在什么场合中应用?
LEFT JOIN操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。

6 ejb中的sessionbean和entitybean的区别和含义?
SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。
对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。
对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。

7抽象类和接口的区别
1:一个类可以实现任意多的接口,但是最多只能对一个抽象类进行子类化。
2:一个抽象类可以包括非抽象方法,而一个接口的所有方法在效果上都是抽象的。
3:一个抽象类可以申明并使用变量,而一个接口不行。
4:一个抽象类中的方法的访问修饰符可以使public,internal,protected,protectedinternal,private,而接口成员的访问修饰符在默认情况下都是public,而且,在申明接口成员时,不允许使用访问修饰符(甚至不能使用public)。
5:一个抽象类可以定义构造函数,而一个接口不行。

8对象序列化的含义
Java 序列化技术可以使你将一个对象的状态写入一个Byte流里,并且可以从其它地方
把该Byte 流里的数据读出来。重新构造一个相同的对象。这种机制允许你将对象通过网络
进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的序列化机制是RMI、
EJB、JNNI等技术的技术基础。

9数据库中的锁包括什么?
基本的封锁类型有两种:排它锁(X锁)和共享锁(S锁).
所谓X锁,是事务T对数据A加上X锁时,只允许事务T读取和修改数据A,…
所谓S锁,是事务T对数据A加上S锁时,其他事务只能再对数据A加S锁,而不能加X锁,直到T释放A上的S锁若事务T对数据对象A加了S锁,则T就可以对A进行读取,但不能进行更新(S锁因此又称为读锁),在T释放A上的S锁以前,其他事务可以再对A加S锁,但不能加X锁,从而可以读取A,但不能更新A.

10 jsp和serverlet的区别
(1).简单的来说Jsp就是含有Java代码的html,而servlet是含有html的Java代码;
(2).Jsp最终也是被解释为servlet并编译再执行,Jsp不过是servlet的另一种编写方式;
(3).Jsp擅长表示,servlet擅长数据处理,在MVC三层结构中,Jsp负责V(视图),servlet负责C(控制),各有优势,各司其职;

11. oracle中数据表的交集怎么表示
第一种方法:利用操作符intersect
第二种方法: in子句

12 jsp页面中如何传递参数
(1)直接在URL请求后添加
(2)jsp:param
3)设置session和request

13 jsp中的doget()和dopost()方法的作用?
这个两个方法都是http协议的方法,doget用于传输数据量较小(密码会泄露),dopost数据量较大,

14什么是用例?如何确定用例?
在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。
一个用例可以看作是系统的一个功能,例如增加用户,增加角色,查询一个具体的一个事物,在Ejb的设计中,一个use case跟Sessionbean的一个方法是对应的(使用的session fasade模式),你说的基础数据管理,我会把它处理成为一个抽象用例,因为我认为基础数据这个概念非常的抽象,什么是真正的基础数据?例如说一个系统中邮政编码算是这个系统的基础数据,那么”邮政编码修改”这个就应该算是用例了.

15活动图和时序图的区别?
时序图主要强调时间的顺序
活动图主要强调空间上类的交互

16什么是策略模式?什么情况下使用?
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换
Context(应用场景):
1、需要使用ConcreteStrategy提供的算法。
2、 内部维护一个Strategy的实例。
3、 负责动态设置运行时Strategy具体的实现算法。
4、负责跟Strategy之间的交互和数据传递。

17面向接口编程的好处
使用接口编程,易于程序扩展,降低程序耦合性。
包括结构清晰,类之间通信简单易懂,扩展性好,提高复用性等等。

18事物
事务就是一系列的操作,这些操作完成一项任务.只要这些操作里有一个操作没有成功,事务就操作失败,发生回滚事件.即撤消前面的操作,这样可以保证数据的一致性.而且可以把操作暂时放在缓存里,等所有操作都成功有提交数据库,这样保证费时的操作都是有效操作.
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java ssh