IBM常见的java技术面试指导:
1. Spring整合struts有几种方式
2中 把struts的Action托管给spring,和不托管
2. Spring的动态代理是怎么写的? 怎么配置的?
这个问法太笼统,到时候可以让面试官在说清楚一点。
Sprign 的代理常用有JDK动态代理和CGLIB字节码生成的 区别?
* JDK动态代理只能对实现了接口的类生成代理,而不能针对类
* CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法
因为是继承,所以该类或方法最好不要声明成final
配置有两种:1 annotation(声明式 或 注解) 2 配置 xml文件
15. 画一下struts的一次请求和处理的过程
对于采用struts框架的web应用,在web应用启动时就会加载并初始化ActionServlet,ActionServlet从struts-config配置文件中读取配置信息,把它们存放到各种配置对象,例如Action的映射信息放到ActionMapping对象中。当ActionServlet接受到一个客户请求时走一下流程:
检索和用户请求匹配的ActionMapping实例。如果不存在,就返回用户请求路径无效信息
如果ActionForm实例不存在,就创建一个ActionForm对象,把 用户提交的表单数据保存的ActionForm对象中
根据配置信息决定是否需要验证。需要就调用ActionForm中的validate方法
如果ActionForm的validate()返回null或者返回一个不包含ActionMessage的ActionErrors对象,验证成功
ActionServlet根据ActionMapping实例包含的映射的信息决定将请求转发给那个Action。如果相应的Action实例不存在就先创建,然后调用execute()方法
Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward指向的jsp
16.Hibernate的优缺点?
优点:hibernate它是一个开放源码的关系对象型框架,它对jdbc进行了非常轻量级的封装。使得程序员可以随心所欲的使用对象编程思维来操作数据库。
hibernate它可以应用在任何使用jdbc的场合,即可以在java客户端程序使用,也可以在servlet/jsp的web应用中使用。更具革命意义的是,可以代替在j2ee应用中的cmp,完成数据持久的重任。
大多数开发机构经常采取创建各自的数据持久层,一旦底层数据结构发生改变时,那么修改其余部分适应这种改变将花费的代价十分巨大。而hibernate适时的填补了这一空白,它为java提供了一个易用的,高效率的关系对象映射。它是一个轻量级的持久层框架,功能十分丰富。
缺点:太简单,影响效率,不好学
17.Hibernate的二级缓存的原理?Hibernate和ibatis的区别?
18.Hibernate事务和Spring事务有什么区别?
ibernate的事务通过显示的添加代码完成,
Spring是通过动态代理切入运行时添加代码管理完成的,所谓AOP嘛
如果Spring配置的是Hibernate事务管理,动态切入的代码应该是和手写hibernate事务管理基本一致的
所以,无论用何种事务方式,只要保证事务里面的调用的所有方法没有被其他的事务管理就可以实现事务
19.Oracle比SQL Server好在哪里?
20.Java实例化一个类的具体过程
21.Java ClassLoad的具体过程
22.Java垃圾回收机制。
23.java是如何管理内存的以及什么情况下会发生内存溢出。
类之间的死循环引用
24.Final,finally,finalize的区别?exception与error的区别以及举个常见的exception和error(如内存溢出)
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
25.散列算法有哪些?
26.常用的算法有哪些?
27.Collection里有个sort算法是用什么算法实现的。
28.所知道的MVC框架有哪些
Struts, Hibernate
29.说一下MVC概念
MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。MVC模式最早是smalltalk语言研究团提出的,应用于用户交互应用程序中。smalltalk语言和java语言有很多相似性,都是面向对象语言,很自然的SUN在petstore(宠物店)事例应用程序中就推荐MVC模式作为开发Web应用的架构模式。MVC模式是一种架构模式,其实需要其他模式协作完成。在J2EE模式目录中,通常采用service to worker模式实现,而service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式组成。而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts提供了抽象类Action使开发者能将Model应用于Struts框架中。
30.Struts2和Struts1有什么区别
• Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。
• Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。
Struts2提供一个ActionSupport基类去 实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。
线程模式:
• Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
• Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)
Servlet 依赖:
• Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和HttpServletResponse 被传递给execute方法。
• Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest 和 HttpServletResponse的必要性。
可测性:
• 测试Struts1 Action的一个主要问题是execute方法暴露了servlet API(这使得测试要依赖于容器)
。一个第三方扩展--Struts TestCase--提供了一套Struts1的模拟对象(来进行测试)。
• Struts 2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。
捕获输入:
• Struts1 使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经 常创建多余的类捕获输入。动态Bea(DynaBeans)可以作为创建传统ActionForm的选择,但是,开发者可能是在重新描述(创建)已经存 在的JavaBean(仍然会导致有冗余的javabean)。
• Struts 2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性可能是有自己(子)属性的rich对象类型。Action属性能够通过 web页面上的taglibs访问。Struts2也支持ActionForm模式。rich对象类型,包括业务对象,能够用作输入/输出对象。这种 ModelDriven 特性简化了taglib对POJO输入对象的引用。
表达式语言:
• Struts1 整合了JSTL,因此使用JSTL EL。这种EL有基本对象图遍历,但是对集合和索引属性的支持很弱。
• Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言--"Object Graph Notation Language" (OGNL).
绑定值到页面(view):
• Struts 1使用标准JSP机制把对象绑定到页面中来访问。
• Struts 2 使用 "ValueStack"技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。
类型转换:
• Struts 1 ActionForm 属性通常都是String类型。Struts1使用Commons-Beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。
• Struts2 使用OGNL进行类型转换。提供基本和常用对象的转换器。
校验:
• Struts 1支持在ActionForm的validate方法中手动校验,或者通过Commons Validator的扩展来校验。同一个类可以有不同的校验内容,但不能校验子对象。
• Struts2支持通过validate方法和XWork校验框架来进行校验。XWork校验框架使用为属性类类型定义的校验和内容校验,来支持chain校验子属性 Action执行的控制:
• Struts1支持每一个模块有单独的Request Processors(生命周期),但是模块中的所有Action必须共享相同的生命周期。
• Struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不同的生命周期。堆栈能够根据需要和不同的Action一起使用。
原文地址:http://www.dnew168.com/home.php?mod=space&uid=4&do=blog&id=128
分享到:
相关推荐
【IBM面试题全面解析】 IBM,作为全球知名的科技公司,其面试流程严谨且全面,旨在寻找最合适的候选人。本文将围绕“IBM面试题(全面)”这一主题,深入解析可能出现的面试知识点,帮助你做好充分的准备。 1. **...
- **IBM DeveloperWorks Java**:IBM提供的JAVA技术资源。 - **OnJava**:每周发布新文章的JAVA技术网站。 #### 三、技能与框架掌握 - **框架掌握**: - JSP + Servlet + AJAX:适用于简单的网页交互功能。 - ...
总的来说,这份资料集合提供了全面的Java面试准备指导,涵盖了技术知识、实战题库和面试策略,对于求职Java程序员的人来说是宝贵的资源。通过深入学习和练习,你可以大大增加自己在面试中的竞争力。
准备IBM的笔试面试,除了研究历年试题,还要关注行业动态和技术发展,提升自身的综合素质。同时,良好的沟通技巧、团队协作能力和创新思维也是IBM所看重的品质。通过充分的准备和实战演练,相信你可以成功走过IBM的...
以下是一些关于IBM面试的知识点,希望能为有志于加入外企的求职者提供指导: 1. **公司文化**:IBM作为一家历史悠久的科技公司,其企业文化强调“创新为要”(Innovation that matters)和“成就客户”(Client ...
- 高层次:针对本科及以上学历学员,提供符合国际标准的专业培训,并通过IBM面试。 - 专业化:依托高新区的软件企业资源,IBM的外包服务经验和华迪实训基地的专业化培训。 - 强大的师资:由有丰富经验的工程经理...
HuiHoo不仅提供技术内容,还有职业规划、面试准备等方面的指导,对于Java开发者来说是一个全方位的服务平台。 ### 总结 以上五个网站各自特色鲜明,能够满足不同层次Java学习者的需求。通过充分利用这些资源,不仅...
【IBM软件学院Java教程】是针对Java编程语言的一套全面学习资源,由知名科技巨头IBM提供。这个教程旨在帮助学员深入理解和掌握Java编程的核心概念和技术,适合初学者和有一定经验的开发者。IBM软件学院的教学质量...
考虑到文档的内容介绍中包含一些技术术语和不清晰的文字,我会尝试对这些内容进行合理解读,以提供一个...同时,也要准备如何在面试中清晰、有逻辑地表达这些技术点,以及如何将这些技术应用到实际问题解决中的能力。
总之,《JAVA J2EE JOB INTERVIEW COMPANION PREVIEW》是一本内容丰富、覆盖广泛的面试指南,不仅包含了Java和J2EE的核心技术和理论知识,还深入探讨了面试中常见的个人与行为问题,以及如何将这些知识应用到实际...
在计算机科学与技术专业的推免面试中,英语自我介绍是一个重要的环节,因为它展示了你的语言能力、个人特质以及专业技能。以下是从给定的自我介绍内容中提取的关键知识点: 1. **个人信息**:赵婉君(昵称:June)...
由于提供的文件信息中,【部分内容】...这些信息对准备计算机领域的求职者具有实际的指导意义,提醒求职者需要全面准备,从技术技能到企业文化和面试技巧,都要做到心中有数,这样才能在竞争激烈的求职市场中脱颖而出。
- **知识点**:IBM官方推荐的Java学习资源,包括书籍、文档和技术文章。 11. **CSDN 活动 - Java 学习资源汇总** - [http://events.csdn.net/ymy/imooc.com1/index.html]...
技术面试侧重技术能力的深入探讨,而行为面试则关注个人素质和团队协作能力。 总的来说,“部分外企笔试真题总结”是准备IT外企面试的宝贵资源,它可以帮助求职者了解企业期望的技术水平和思维方式,从而有针对性地...
### 高级软件工程师面试题解析 #### 一、类与对象的概念 1. **类**: 类是对象的抽象描述,定义了一组相似对象的共同属性和行为。它是一种模板或者蓝图,用来创建具体的对象实例。 2. **对象**: 对象是类的一个实例...
IBM DeveloperWorks上的资源(http://www.ibm.com/developerworks/cn/java/os-ecplug/)提供了更深入的教程和实践指导,帮助开发者进一步掌握Eclipse插件开发技术。不断学习和实践,你将在Eclipse插件开发领域...
最后,职业生涯规划书还应包含个人简历制作指导、面试技巧、职业发展策略等内容,帮助专业人士在求职过程中更好地展示自己的技能和成就,以及如何在职场中保持个人品牌和专业形象,这些都是成功职业规划不可或缺的...