[Java教程]ssh面试题

0 2013-10-17 16:02:46

Struts2:

1、为什么每次请求都要创建一个Action对象?

truts2每次请求的时候都会创建一个action的实例,这样会保证线程的安全。struts1只是在第一次请求的时候创建一个action的实例,以后每次相同的请求都直接从内存中去读取,它是单例模式,安全性不行。

2、ModelDriven拦截器的配置中refreshModelBeforeResult解决了什么问题?在数据输出之前将数据接收的Bean里面的数据清空。解决了数据混淆的可能性。

3、为什么在web.

为了 1.可以将数据进行过滤2.可以进行数据的转码将数据进行统一的编码

4、请你给我谈谈ValueStack?

Struts2是如何实现MVC设计模式的?在Struts2里面是将每次页面的请求进行处理,然后将请求需要输出的数据转发的需要做数据显示的页面,Struts2只是起一个数据接受和转接的功能,就是Controler控制器,而传来数据的页面叫View显示层,Struts2将数据提交给进行处理的类叫Model模型层,专门进行数据处理和数据库的链接。

Spring:

1、你为什么要用Spring?使用Spring 1.主要将各个框架进行有效的联系起来,缩短实际编程的时间,起一个润滑剂的作用。 2.可以将各个框架进行有效的管理和控制,让数据传输中安全。

2、请你聊一聊IOC/DI?依赖注入和控制反转Spring的两大基础作用主要是将所有组件在Spring提供的外部容器中加载,提高安全性,减低耦合性,使各个框架或者类之间的依赖性降低。

3、什么是声明式的事务管理?为什么要使用声明式的事务管理?Spring如何实现声明式的事务管理?声明事物管理主要是将在进行对数据库中数据进行添加或者修改的时候需要执行事物管理。主要是避免在执行数据修改和添加的时候数据添加或者修改不完全,导致数据丢失。Spring是使用AOP面向切面的思想进行事物管理的。

4、把spring和hibernate集成,定义事务管理特性的时候,为何要将除了添加、删除、更新操作之外的方法,即主要执行查询任务的方法定义为read-only?因为添加和删除和更新都涉及到数据库的修改,而查询并为涉及数据修改,所以只需要定义只读,这样可以提高效率,进行更加方便的事物管理。而事物管理主要是为添加和删除和更新设计的。

Hibernate:

1、请你谈谈你对OR映射的理解?将数据库里面的每一张表都映射成一个实体。

2、很多人说Hibernate不适合大项目,性能有问题,你是如何理解的?因为Hibernate属于大型框架,里面对许多方法的封装比较多,让SQL控制权降低。这样的话,适用性就会降低,在不必要的操作上会浪费时间。但是只要将Hibernate里的配置进行优化,也能提高其性能。

3、Hibernate为什么一定要定义一个数据库标识?可以让映射文件变得简洁,消除无用的噪音(比如TBL_前缀等)。Hibernate使用的默认策略是几乎什么都不做,所以使用标识的作用就是使数据操作更加简洁和方便

4、为什么Hibernate建议你的实体类实现hashCode和equals方法?因为Hibernate使用了一级和二级缓存,很多查询为了提高效率Hibernate都会先从缓存中进行查找,然后再从数据库进行查找。而HashCode是唯一的,所以这样避免数据操作出现数据混淆的可能,而equals的作用是对比Hibernate缓存中数据是否一致。

5、谈谈你对Hibernate实体类中的数据库标识与数据库主键之间关系的认识?数据库标识是为了方便和简洁映射文件,而主键是为了使数据不会重复。

6、谈谈你对Hibernate关联映射与数据库外键之间关系的认识?Hibernate在进行映射的时候会将数据库的关系也进行映射将数据库中的外键也使用标签的形式进行管理,这样在人为操作的时候就不需要手动的管理数据库关系了。

7、调用session.save()方法,hibernate一定会发出insert语句吗?谈谈你的理解不会,具体执行步骤如下: 1. 首先在Session内部缓存中进行查找,如果发现则直接返回。 2. 执行实体类对应的Interceptor.isUnsaved方法(如果有的话),判断对象是否为未保存状态。 3. 根据unsaved-value判断对象是否处于未保存状态。 4. 如果对象未保存(Transient状态),则调用save方法保存对象。 5. 如果对象未已保存(Detached状态),则调用update方法将对象与Session重新关联。 。

8、调用session.update()方法,hibernate一定会发出update语句吗?谈谈你的理解理解同上

9、请你聊一下以下名词、概念或用法:lazy、lazy=”extra”、inverse、fetch、fetch=”join”、fetch=”subselect”、batch-sizelazy懒,lazy=“extra”extra属性是不大容易重视的,其实它和true差不多,但有个小的智能的地方是,即调用集合的size/contains等方法的时候,hibernate并不会去加载整个集合的数据,而是发出一条聪明的SQL语句,以便获得需要的值,只有在真正需要用到这些集合元素对象数据的时候,才去发出查询语句加载所有对象的数据inverse控制翻转,主要是为了让谁去维护关系,一般是在主表中配置,将维护关系的只能交给主键。fetch取来,fetch="join"主要是在查询的时候Hibernate会自动查询有关联的表。fetch="join",hibernate会通过select语句使用外连接来加载其关联实体或集合,此时lazy会失效fetch="subselect",另外发送一条select语句抓取在前面查询到的所有实体对象的关联集合batch-size配置这个属性是让Hibernate在执行批量的数据库操作

10、配置了lazy=”true”一定会实现懒加载吗?不一定,因为如果再配置中你也使用fetch属性的话此时lazy就会失效

11、请你谈谈Hibernate中的“N+1”问题主要是如果再一般的查询时,如果需要查询很多次,就需要像数据库发送很多条SQL语句,而且,会返回很多个结果,而Hibernate中使用N+1策略时执行Criteria时,会将自动进行SQL构造,并且映射到实体Bean中,就只会返回一个结果,这样不仅提高了性能,而且在处理返回值的时候也变得比较轻松。

12、请你谈谈Hibernate有哪些最佳实践?数据库建模,ORM是Hibernate中比较经典。

本文网址:http://www.shaoqun.com/a/72913.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

SSH

0

java面试关于ssh的_[Java教程]ssh面试题相关推荐

  1. java面试总结(一)-----如何准备Java初级和高级的技术面试

    java面试总结(一)--如何准备Java初级和高级的技术面试 本文内容来自:https://mp.weixin.qq.com/s?__biz=MzAxNDMwMTMwMw==&mid=224 ...

  2. Java 面试全解析:核心知识点与典型面试题

    课程背景 又逢"金九银十",年轻的毕业生们满怀希望与忐忑,去寻找.竞争一个工作机会.已经在职的开发同学,也想通过社会招聘或者内推的时机争取到更好的待遇.更大的平台. 然而,面试人群 ...

  3. java面试带电脑吗?java面试要准备什么?

    最近面试java开发的朋友有点多哦,前段时间有个老弟面试对方要去他带电脑,他不知道是为什么.那么java面试带电脑吗?java面试要准备什么?今天来谈谈这个问题. java面试带电脑吗? 面试要求带电 ...

  4. Java 面试必问题目,Java 后端校招面试题

    字节跳动一面: 自我介绍,主要讲讲做了什么和擅长什么 看你项目做 Spring 比较多, 问一下 Spring 相关的东西, IoC 是什么概念? Bean 的默认作用范围是什么?其他的作用范围? 索 ...

  5. java 微信群发多图文_[Java教程]httpClient实现微信公众号消息群发

    [Java教程]httpClient实现微信公众号消息群发 0 2016-09-21 20:00:10 1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信ope ...

  6. java面试没有全部答对_十道java基础面试题,你能保证全答对吗?

    java初级开发面试中经常被问到的问题有好多,下面总结一下常见的问题,先给问题,大家思考一下再看答案. 1.JDK 和 JRE 有什么区别?2.== 和 equals 有什么区别?3.说说final在 ...

  7. java面试准备什么东西_关于Java面试,你应该准备这些知识点

    转载: http://www.importnew.com/23896.html 马老师说过,员工的离职原因很多,只有两点最真实: 钱,没给到位 心,受委屈了 当然,我是想换个平台,换个方向,想清楚为什 ...

  8. Java面试准备(一)——Java基础

    Java基础 一.基础概念与常识 1. Java和C++对比 2. Java语言有哪些特点 3. 什么是字节码?采用字节码的好处? 4. JVM,JRE和JDK 5. Oracle JDK和OpenJ ...

  9. GitHub上标星75k+超牛的《Java面试突击版》,java开发实战经典第二版答案

    运筹帷幄之后,决胜千里之外!不打毫无准备的仗,我觉得大家可以先从下面几个方面来准备面试: 1.自我介绍.(你可千万这样介绍: "我叫某某,性别,来自哪里,学校是哪个,自己爱干什么" ...

最新文章

  1. [YTU]_2002(C语言实验——单词统计)
  2. Spring Boot 青睐的数据库连接池HikariCP为什么是史上最快的?
  3. 基因组重复序列注释-RepeatMasker安装和使用
  4. 深度学习100例-卷积神经网络(VGG-16)猫狗识别 | 第21天
  5. LVS入门篇(二)之LVS基础
  6. pov-inc_yourself劳自己-懒惰的设计师的POV和一些Figma
  7. MATLAB实现PCA(主成分分析)
  8. tomcat 无端口号访问
  9. 如何在虚拟机安装并使用NTFS for Mac 15
  10. 制作ESXi6.5启动盘
  11. 【matlab学习】用matlab编写简单程序(入门)
  12. nuvoton ADC采集
  13. Dragdealer拖动组件
  14. 微信公众号机器人详细教程
  15. Heavy Pitch趣味漫画风格字体 for mac
  16. matlab的基本用法---常用的输入输出函数
  17. 阻容感基础02:电阻器原理(2)-电阻器参数
  18. spring redis executePipelined
  19. 关于广义莫比乌斯反演的思考
  20. 吴恩达 tensorflow2.0 实践系列课程(3):NLP

热门文章

  1. java day of month_Java Calendar实例增加DAY_OF_MONTH作为递减(仅)HOUR或MINUTE的副作用
  2. html元素中的click属性,从HTML中的onClick属性调用jQuery方法
  3. linux线程并不真正并行,多核时代:并行程序设计探讨(3)——Windows和Linux对决(多进程多线程)...
  4. java digests.generatesalt_Java DigestUtils.sha1Hex方法代碼示例
  5. python3.7输出语句_python3.4用循环往mysql5.7中写数据并输出的实现方法
  6. java csv 追加,Java将新列附加到csv文件
  7. 周末ROS学习沙龙第三期——launch文件、自定义服务通信、控制机器人移动、传感器数据处理
  8. html页面跨域提交数据,前端跨域的整理
  9. linux摄像头 自动对焦,基于H3在Linux下驱动OV5640摄像头的方法与流程
  10. android画板需求分析,Android编程实现画板功能的方法总结【附源码下载】