一、Spring面试题

1、Spring 在ssm中起什么作用?
答:

Spring:Spring轻量级框架。

作用:Bean工厂,用来管理Bean的生命周期和框架集成。

Spring框架的两大核心:

①. IOC/DI(控制反转/依赖注入) :把dao依赖注入到service层,service层反转给action层,Spring顶层容器为BeanFactory。

②. AOP:面向切面编程。

2、Spring的事务?
答:

编程式事务管理:编程方式管理事务,极大灵活性,难维护。

声明式事务管理:可以将业务代码和事务管理分离,用注解和xml配置来管理事务。

3、IOC 在项目中的作用?
答:

作用:Ioc解决对象之间的依赖问题,把所有Bean的依赖关系通过配置文件或注解关联起来,降低了耦合度。

4、Spring的配置文件中的内容?

答:

1、开启事务注解驱动

2、事务管理器

3、开启注解功能,并配置扫描包

4、配置数据库

5、配置SQL会话工厂,别名,映射文件

6、不用编写Dao层的实现类

5、Spring下的注解?

答:

先注册:@Controller @Service @Component

后注入:@Autowired @Resource

请求地址:@RequestMapping

返回具体数据类型而非跳转:@ResponseBody

6、Spring DI 的三种方式?

答:

构造器注入:通过构造方法初始化

1 <constructor-arg index="0" type="java.lang.String" value="宝马"></constructor-arg>

setter方法注入:通过setter方法初始化

2 <property name="id" value="1111"></property>

接口注入

7、Spring主要使用了什么模式


答:

工厂模式:每个Bean的创建通过方法

单例模式:默认的每个Bean的作用域都是单例

代理模式:关于Aop的实现通过代理模式

8、IOC,AOP的实现原理?

答:

IOC:通过反射机制生成对象注入

AOP:动态代理

二、SpringMvc面试题

1、SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
答:

问题:单例模式,在多线程访问时有线程安全问题

解决方法:不要用同步,在控制器里面不能写字段

2、SpringMvc 中控制器的注解?
答:

@Controller:该注解表明该类扮演控制器的角色

3、@RequestMapping 注解用在类上的作用?
答:

作用:用来映射一个URL到一个类或者一个特定的处理方法上

4、前台多个参数,这些参数都是一个对象,快速得到对象?
答:

方法:直接在方法中声明这个对象,SpringMvc就自动把属性赋值到这个对象里面

5、SpringMvc中函数的返回值?
答:

String,ModelAndView,List,Set 等

一般String,Ajax请求,返回一个List集合

6、SpringMvc中的转发和重定向?
答:

转发: return:“hello”

重定向 :return:“redirect:hello.jsp”

7、SpringMvc和Ajax之间的相互调用?
答:

通过JackSon框架把java里面对象直接转换成js可识别的json对象,具体步骤如下:

(1)加入JackSon.jar

(2)在配置文件中配置json的映射

(3)在接受Ajax方法里面直接返回Object,list等,方法前面需要加上注解@ResponseBody

8、SpringMvc的工作流程图?
答:

SSM框架相关基础面试题整理。

9、Struts2 和 SpringMvc的区别?
答:

(1)入口不同:

Struts2:filter过滤器。

SpringMvc:一个Servlet即前端控制器。

(2)开发方式不同:

Struts2:基于类开发,传递参数通过类的属性,只能设置为多例。

SpringMvc:基于方法开发(一个url对应一个方法),请求参数传递到方法形参,可以为单例也可以为多例(建议单例)。

(3)请求方式不同:

Struts2:值栈村塾请求和响应的数据,通过OGNL存取数据。

SpringMvc:通过参数解析器将request请求内容解析,给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过request域传输到页面,jsp视图解析器默认使用的是jstl。

三、Mybatis面试题

1、Ibatis和Mybatis?
答:

Ibatis:2010年,apache的Ibatis框架停止更新,并移交给了google团队,同时更名为MyBatis。从2010年后Ibatis在没更新过,彻底变成了一个孤儿框架。一个没人维护的框架注定被mybatis拍在沙滩上。

Mybatis:Ibatis的升级版本。

2、什么是Mybatis的接口绑定,有什么好处?
答:

Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。

3、什么情况用注解,什么情况用xml绑定?
答:

注解使用情况:Sql语句简单时

xml绑定使用情况:xml绑定 (@RequestMap用来绑定xml文件)

4、Mybatis在核心处理类叫什么?
答:

SqlSession

5、查询表名和返回实体Bean对象不一致,如何处理?
答:

映射键值对即可

1 <result column="title" property="title" javaType="java.lang.String"/>

column:数据库中表的列名。

property:实体Bean中的属性名。

6、Mybatis的好处?
答:

(1)把Sql语句从Java中独立出来。

(2)封装了底层的JDBC,API的调用,并且能够将结果集自动转换成JavaBean对象,简化了Java数据库编程的重复工作。

(3)自己编写Sql语句,更加的灵活。

(4)入参无需用对象封装(或者map封装),使用@Param注解。

7、Mybatis配置一对多?
答:

1 <collection property="topicComment" column="id" ofType="com.tmf.bbs.pojo.Comment" select="selectComment" />

property:属性名

column:共同列

ofType:集合中元素的类型

select:要连接的查询

8、Mybatis配置一对一?
答:

1 <association property="topicType" select="selectType" column="topics_type_id" javaType="com.tmf.bbs.pojo.Typ>

property:属性名

select:要连接的查询

column:共同列

javaType:集合中元素的类型

9 、${} 和 #{}的区别?
答:

${}: 简 单 字 符 串 替 换 , 把 {}:简单字符串替换,把:简单字符串替换,把{}直接替换成变量的值,不做任何转换,这种是取值以后再去编译SQL语句。

#{}:预编译处理,sql中的#{}替换成?,补全预编译语句,有效的防止Sql语句注入,这种取值是编译好SQL语句再取值。

这里总结的Java程序员相关面试题很基础,但是很细节,大家可以评估一下自己掌握的情况。

最后

对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

再免费分享一波我的Java面试真题+视频学习详解+技能进阶书籍

点击这里即可免费获取以上我收集整理的全部学习资料

节,大家可以评估一下自己掌握的情况。

最后

对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

再免费分享一波我的Java面试真题+视频学习详解+技能进阶书籍

点击这里即可免费获取以上我收集整理的全部学习资料

Java岗面试:java技术面试问题相关推荐

  1. Java大牛呕心沥血经历——技术面试与HR谈薪资技巧...

    作为"生在红旗下,长在春风里"的"四有新人",笔者从毕业至今,与各路 HR.HRD 斗智斗勇,再加上自己的不懈努力,历尽千辛万苦终于将毕业时的 1500 每月的 ...

  2. Java大牛呕心沥血经历——技术面试与HR谈薪资技巧

    作为"生在红旗下,长在春风里"的"四有新人",笔者从毕业至今,与各路 HR.HRD 斗智斗勇,再加上自己的不懈努力,历尽千辛万苦终于将毕业时的 1500 每月的 ...

  3. 面试系列 | 技术面试老是有劲使不出,该怎么办

    " 阅读本文大概需要 10 分钟 " . 技术面试老是有劲使不出,该怎么办? 又到了一年金三银四,回想到很多年前我刚参加工作时的面试经历,那时都是呆呆地等着面试官问问题,被问到一些 ...

  4. 三面美团Java岗,java架构师线下培训

    性能优化专栏 1.Tomcat性能优化整理 2.JVM性能优化专题 3.Mysql性能优化整理 微服务架构面试专栏 1.SpringCloud面试整理 2.SpringBoot面试整理 3.Dubbo ...

  5. 2019 最新java面试题(技术面试)

    1.servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request.resp ...

  6. java开发面试复试_【java开发初轮技术面试以后 复试一般问什么?】-看准网

    1. 自我介绍. 2. 问项目经历. 首先是推荐系统,简单介绍了原理和功能,告诉他这是课设,含金量不高. 然后问另一个PHP web的项目, (1) 要求说具体做了哪些功能模块, (2) 使用框架了吗 ...

  7. 40K刚面完Java岗,这些技术必须掌握

    学习是一份苦差事,这句话真的不是说说而已,真的是你认真学习过,才会懂得,学习是多么的辛苦,这点我深有体会,但是我还是想说,没办法,想要更好的生活,你就要不断地努力学习. 所幸的是,程序员这个行业,学习 ...

  8. 在牛客网爆火的Java岗25大技术栈!(含答案)

    入行这么些年,每年都会有很多读者或者朋友跟我诉苦,无非都是觉得自己技术还不错,就是面试发挥总是不理想云云,其实仔细想想也不奇怪,就跟上学时每个班想必都有一两个同学平时学习扎实,考试时成绩却总是不上不下 ...

  9. 三面美团Java岗,java电子书下载百度云

    Spring 全家桶: Spring 原理 Spring面试题 思维导图 面试题 Spring视频 Spring 原理 Spring特点 Spring 核心组件 Spring常用模块 Spring主要 ...

  10. oracle+技术面试,Oracle技术面试问题

    这也许是你一直期待的文章,在关注这部分技术问题的同时,请务必阅读有关面试中有关个人的问题和解答.这里的回答并不是十分全面,这些面试问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽的答 ...

最新文章

  1. dell服务器状态监控系统,Nagios监控Dell服务器硬件状态
  2. iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
  3. Coding:C++类定义实现部分成员函数
  4. border绘制三角形
  5. c语言 申请1k内存,怎么解决函数内申请内存,函数外释放的问题
  6. 使用Nodejs搭建server
  7. 8年前端开发的知识点沉淀(不知道会多少字,一直写下去吧...)
  8. 决策树(六)--随机森林
  9. oracle迁移数据到mysql
  10. scp传输文件的命令
  11. 人工智能不是替代人,而是辅助人
  12. php try catch,php源码-try、catch过程-原理
  13. 百旺如何看是否清卡_【问吧】如何查看是否清卡成功,出现这些问题,如何处理?...
  14. NSIS教程(4): 调用Windows API
  15. 让360双核浏览器默认极速模式打开网页
  16. 一些.NET的开源项目资料
  17. vue3监听网页窗口关闭
  18. JGG专刊征稿:时空组学
  19. HTTP解析库http-parser简介及使用
  20. 干活的干不过写PPT的 新东方年会吐槽奖金追加至12万-千氪

热门文章

  1. 苹果x支持5g吗_【苹果】曝iPhone12双卡下不支持5G?NO!小白实测支持
  2. 【Java】浅谈Swing概况及简单窗口的构建
  3. 机器人导航(仿真)(二)——amcl定位
  4. Windows 10超级简单的重置方法
  5. Kettle(3):快速入门
  6. mysql eva模型_第四章 Schema 与数据类型优化
  7. Dubbo-02 20190315
  8. Android App加载图片内存空间计算
  9. undefinednbsp;methodnbsp;`titl…
  10. 考研复试--网络层--计算机网络面试题