前言
面经前,我想从个人感受上讲两个重要的场外因素:。
作为一名即将求职的程序员,2021年你的就业机会和风口会出现在哪里?在这样的新环境下,工作应该选择大工厂还是小公司?有几年工作经验的退伍军人应该如何保持和提高竞争力,把被动变成主动?
一、Spring面试题
答:
Spring:Spring轻量级框架。
作用:Bean工厂,用于管理Bean集成生命周期和框架。
Spring框架的两个核心:
①. IOC/DI(控制反转/依赖注入) dao依赖注入到service层,service层反转给action层,Spring顶层容器为BeanFactory。
②. AOP:面向切面编程。
答:
编程事务管理:编程管理事务,灵活性大,维护困难。
声明式事务管理:业务代码可以与事务管理分离,注释和xml配置管理事务。
答:
作用:Ioc解决对象之间的依赖问题,解决对象之间的所有依赖问题Bean通过配置文件或注文件或注释来降低耦合度。
答:
1.打开事务注释驱动
2.事务管理器
3.打开注释功能,配置扫描包
配置数据库
5、配置SQL会话工厂,别名,映射文件
6、不用编写Dao层的实现类
答:
先注册:@Controller @Service @Component
后注入:@Autowired @Resource
请求地址:@RequestMapping
返回具体数据类型而不是跳转:@ResponseBody
答:
结构注入:通过结构方法初始化
1 <constructor-arg index="0" type="java.lang.String" value="宝马"></constructor-arg> setter注入方法:通过setter方法初始化
2 <property name="id" value="1111"></property> ? 答:
工厂模式:每个Bean创建方法
单例模式:每个默认模式Bean作用域均为单例
代理模式:关于Aop通过代理模式实现
答:
IOC:对象通过反射机注入
AOP:动态代理
二、SpringMvc面试题
答:
问题:单例模式,多线程访问时有线程安全问题
解决方案:不要同步,控制器中不能写字段
答:
@Controller:该注释表明该类扮演控制器的角色
答:
功能:用于映射一个URL对于一个类或特定的处理方法
答:
方法:直接在方法中说明对象,SpringMvc属性在这个对象中自动赋值
答:
String,ModelAndView,List,Set 等
一般String,Ajax请求,返回一个List集合
答:
转发: return:“hello”
重定向 :return:“redirect:hello.jsp”
答:
通过JackSon框架把java内部对象直接转换成js可识别的json具体步骤如下:
(1)加入JackSon.jar
(2)配置文件json的映射
(3)在接受Ajax直接返回方法Object,list等等,方法前面需要注明@ResponseBody
答:
SSM整理框架相关基础面试题。
答:
(1)入口不同:
Struts2:filter过滤器。
SpringMvc:一个Servlet即前端控制器。
(2)开发方式不同:
Struts2.基于类开发,通过类传递参数的属性只能设置为多例。
SpringMvc:基于方法开发(一个url对应一种方法),请求参数传递到方法形参,可以是单例或多例(推荐单例)。
(3)请求方式不同:
Struts2:通过值栈村舒的要求和响应数据,通过OGNL存取数据。
SpringMvc:通过参数分析器request请求内容分析,给方法形参赋值,包装数据和视图ModelAndView对象,最后又会ModelAndView通过模型数据request域传输到页面,jsp默认情况下,视图器jstl。
三、Mybatis面试题
答:
Ibatis:2010年,apache的Ibatis框架停止更新,移交给google同时更名为团队MyBatis。从2010年后Ibatis在没有更新的情况下,它已经完全成为一个孤儿框架。没有人维护的框架注定被维护mybatis拍在沙滩上。
Mybatis:Ibatis升级版。
答:
Mybatis实现了DAO接口与xml映射文件的绑定会自动实现我们生成的接口,使用起来更方便。
答:
说明使用情况:Sql语句简单时
xml绑定使用:xml绑定 (@RequestMap用来绑定xml文件)
答:
SqlSession
答:
映射键值对即可
1 <result column="title" property="title" javaType="java.lang.String"/> column:数据库中表的列名。
property:实体Bean中的属性名。
答:
(1)把Sql语句从Java独立出来。
(2)底层封装JDBC,API调用可以自动将结果集转换为JavaBean对象,简化Java重复数据库编程。
(3)自己写Sql句子,更灵活。
(4)入参不需要用对象包装(或)map包装),使用@Param注解。
答:
1 <collection property="topicComment" column="id" ofType="com.tmf.bbs.pojo.Comment" select="selectComment" />
property:属性名
column:共同列
ofType:集合中元素的类型
select:要连接的查询
答:
1 <association property="topicType" select="selectType" column="topics_type_id" javaType="com.tmf.bbs.pojo.Typ>
property:属性名
select:要连接的查询
column:共同列
javaType:集合中元素的类型
答:
${}: 简 单 字 符 串 替 换 , 把 {}:简单字符串替换,把:简单字符串替换,把{}直接替换成变量的值,不做任何转换,这种是取值以后再去编译SQL语句。
#{}:预编译处理,sql中的#{}替换成?,补全预编译语句,有效的防止Sql语句注入,这种取值是编译好SQL语句再取值。
这里总结的Java程序员相关面试题很基础,但是很细节,大家可以评估一下自己掌握的情况。
最后在出来放一波福利吧!希望可以帮助到大家!
千千万万要记得:多刷题!!多刷题!!
之前算法是我的硬伤,后面硬啃了好长一段时间才补回来,算法才是程序员的灵魂!!!!
篇幅有限,以下只能截图分享部分的资源!!
(1)多线程(这里以多线程为代表,其实整理了一本JAVA核心架构笔记集)

(2)刷的算法题(还有左神的算法笔记)

(3)面经+真题解析+对应的相关笔记(很全面)

(4)视频学习(部分)
ps:当你觉得学不进或者累了的时候,视频是个不错的选择

其实以上我所分享的所有东西,有需要的话我这边可以免费分享给大家,但请一定记住获取方式:点击这里前往免费获取
片转存中…(img-eAp2Myla-1621224486928)]
(3)面经+真题解析+对应的相关笔记(很全面)
[外链图片转存中…(img-3dyXDLS1-1621224486931)]
(4)视频学习(部分)
ps:当你觉得学不进或者累了的时候,视频是个不错的选择
[外链图片转存中…(img-77hP685h-1621224486932)]
其实以上我所分享的所有东西,有需要的话我这边可以免费分享给大家,但请一定记住获取方式:点击这里前往免费获取
在这里,最后只一句话:祝大家offer拿到手软!!