锁定老帖子 主题:几个Java的面试题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-17
1 考:看你的项目经历用过很多Java技术,开源框架,说说在项目中都用过什么? 我:Struts,Spring,Hibernate,JBPM,ActiveMQ,RCP,OpenLdap... 2 考:你能说一下Spring最大的特点和好处是什么吗? 我:我觉得它最大的特点和好处就是无侵入性 考:(一愣)嗯? 我:比如我在编写业务逻辑的时候,我就可以只是编写POJO,然后用JUnit测试,这时我不去考虑持久化,不去考虑事务,只要我符合面向接口编程和IoC原则就OK 考:(打断我)IoC是什么 我:控制反转 考:具体的呢? 我:如果从实现的角度来说,正如Martin Flower所讲,DI依赖注入是个更具体的IoC的实现方式,Spring支持三种依赖注入形式,比如构造子注入,setter,getter注入... 考 :(打断我)切面是什么 我:(转换话题太快,愣了12帧的时间)就是指的应用系统中关注的某个方面 考:说具体点 我:比如日志啊,安全啊,事务啊 考:说的通俗一些呢 我:(有点蒙)我不知道举例说明是不是是您所指的通俗 考:就是更概括一些,应用中的什么方面 我:是那些贯穿于系统多处的可复用的功能吧。(我的意思是比如在系统中很多的地方都会用的日志,用到消息服务,那么我就可以把它看成一个Aspect) 3 考:Hibernate有几级缓存 我:(这个问题答的巨屎,不知道我在哪看了一眼,记得Hibernate有三级缓存,虽然在我们的项目中我们指配置了二级缓存)三级 考:分别是什么 我:(我拼命的搜索自己的记忆,因为我是一年半前研究Hibernate的,之后我们将Hibernate的细节都封装在我们自制的JPort框架之下了,当时也没太深入研究缓存,只记得二级缓存可以替换不同的实现,于是我就只答了这些。后来回来查了下网上,是有二级缓存,一级是指Session缓存,二级是SessionFactory的外置缓存,可以替换不同的实现) 考:你再想想是二级还是三级 我:(很坚定,错就错了,有的时候自己的自信会让对方对他自己产生怀疑)三级,我记得Hibernate in Action那本书上写的 考:如果缓存池中的对象超过了容量,怎么处理,是放回到数据库还是怎么办? 我:(这个真没想过,因为我们项目中没遇到过这个问题)放回数据库?好像不应该是这个概念吧,数据库和缓存的对象应该是同步的,不应该存在放回吧,就是会将那些过期的数据或者是命中率低的对象释放掉就可以了吧。我想Hibernate应该有不同的策略来控制这件事。(看来回去得好好研究一下这个问题了,我们过去更关注的是如何进行ORM,因为我个人也比较关注OO,选择Hibernate的一个原因也是因为它可以最小影响我的OOD) 4 考:jBPM的核心是面向图编程,请说明一下什么是面向图编程 我:我记得jBPM开发手册上写的是,冯诺伊曼体系中不支持程序的中断,而在面向图的编程中是需要的,因此jBPM采用了一个方法就是将状态持久化。(我当时想到的是ProcessInstance代表了一个图,当执行到某一个Task的时候,需要实例化一个TaskInstance,执行完后可以将流程状态持久化到数据库里。后来回来看到jBPM的参考手册上写着:面向图的程序设计是解决执行暂停和持久化问题的一种技术。可是我觉得他是不是想听我说流程图,Node和Transition,状态机等内容呢?不太清楚) 5 考:你们用的什么消息中间件? 我:ActiveMQ,Apache的一个开源产品 考:消息服务有两种模式,一种是点到点的,一种是广播的,能说说两者的情况吗? 我:一种就是类似于Socket那种机制,一个消息Provider,一个消息Consumer,另一种就是订阅发布模式,在一个消息服务器上有某个Topic,然后我可以订阅它,当消息发布者更新Topic,我就可以接收到消息了。 感受:很多基础的知识由于长久不用都说不出官方答案了,有些确实是项目中没涉及,因此当初就是泛泛而看,没做深入的研究,后来也就忘记了。题目都很基础,不像我去别的地方面试,谈及工作流他们会问我如果流程是由于一些规则的不同而不同时,怎么办?因为一般而言流程是写成XML然后发布到数据库里的,这些问题都比较实际了。 尤其是第2和第4题,我想这个题很难有个标准答案吧 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-10-17
同情LZ,不过找工作还得复习啊
|
|
返回顶楼 | |
发表时间:2008-10-18
这个考官的技术也挺全面的
|
|
返回顶楼 | |
发表时间:2008-10-18
这个面试确实够深度够广度啊!
一定要好好学习一下! |
|
返回顶楼 | |
发表时间:2008-10-18
lishali12345 写道 这个面试确实够深度够广度啊!
一定要好好学习一下! 任何一本书上都能找到那些概念,感觉他们在背概念,背不出来也就答错了,而且培训教程很多都会讲这些的,当初面试的时候也是这样一大堆没用的话,面试完后感觉我们都很虚伪. |
|
返回顶楼 | |
发表时间:2008-10-18
如果都会的一清二楚的话,我就是项目经理了~~
|
|
返回顶楼 | |
发表时间:2008-10-19
和面试官谈,越简单越好
|
|
返回顶楼 | |
发表时间:2009-01-20
hibernate什么时候出三级缓存了?
4.0吗? |
|
返回顶楼 | |
发表时间:2009-01-20
ybak 写道 hibernate什么时候出三级缓存了?
4.0吗? 传说在测试时 使用内存数据库 不向主数据库中发送请求..... 可以对付过去么? |
|
返回顶楼 | |
发表时间:2009-01-23
完蛋了,很多概念都不懂……
|
|
返回顶楼 | |