JAVA面试2

yeb项目提交

1.rabbitMq路由模式有哪些

简单模式、工作队列模式、发布订阅模式、路由模式、TOPIC(通配符模式)以及RPC

https://msd.misuland.com/pd/2884250137616455578

2.动态权限控制

具体内容后期补充
https://www.jianshu.com/p/a8e66020fad1

3.MVC执行流程

第一步:发起请求到前端控制器(DispatcherServlet)

第二步:前端控制器请求HandlerMapping查找 Handler,可以根据xml配置、注解进行查找

第三步:处理器映射器HandlerMapping向前端控制器返回Handler

第四步:前端控制器调用处理器适配器去执行Handler

第五步:处理器适配器去执行Handler

第六步:Handler执行完成给适配器返回ModelAndView

第七步:处理器适配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一个底层对象,包括 Model和view

第八步:前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)

第九步:视图解析器向前端控制器返回View

第十步:前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域

第十一步:前端控制器向用户响应结果

https://www.cnblogs.com/yanghe123/p/11718783.html

4.Mybatis分页方式

1.数组分页
查询出全部数据,然后再list中截取需要的部分。

2.sql分页

3.拦截器分页
创建拦截器,拦截mybatis接口方法id以ByPage结束的语句

4.RowBounds分页
数据量小时,RowBounds不失为一种好办法。但是数据量大时,实现拦截器就很有必要了。

具体内容可看网上的内容:
https://www.cnblogs.com/aeolian/p/9229149.html

5.Git冲突有哪些?如何解决

1.内容冲突
产生冲突的原因:两个用户修改了同一个文件的同一块区域,git会报告内容冲突。我们常见的都是这种。
解决冲突的办法:编辑冲突文件,修改冲突。
2.树冲突
产生冲突的原因:文件名修改造成的冲突,称为树冲突。
比如,a用户把文件改名为a.c,b用户把同一个文件改名为b.c,那么b将这两个commit合并时,会产生冲突。

https://www.cnblogs.com/xiaohuihui123/p/4923391.html

6.SpringAop切面编程是什么(拦截器)

https://www.cnblogs.com/liujiayun/p/5912628.html

7.SpringMvc

https://www.cnblogs.com/baiduligang/p/4247164.html

8.拦截器 过滤器的区别

 - 拦截器是基于java的反射机制的,而过滤器是基于函数回调。   拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
 - 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
 - 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
 - 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
 - 拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。

https://www.cnblogs.com/panxuejun/p/7715917.html

9.修改密码 (新旧密码不能相同)

10.图片保存在本地的弊端 /第三方(存储服务器)实现

1.网速(带宽问题)
2.时间(在线时间)
3.安全  (网络安全问题)

11.Redis 缓存问题/解决方案

缓存击穿
缓存雪崩
https://www.cnblogs.com/zlxyt/p/11817389.html

12.Mybatis实体类属性名/表类名不一致怎么处理

写sql语句时起别名
在MyBatis的全局配置文件中开启驼峰命名规则
在Mapper映射文件中使用resultMap来自定义映射规则
https://blog.csdn.net/wuzhenwei0419/article/details/90643798

13.包装类有哪些

对象型(Object 的直接子类)包装类:
Boolean、Character、
数值型(继承了Number类)包装类:
Byte、Short、Integer、Long、Float、Double

14.Integer a=127与Integer b=127 相等吗???

		Integer a1=127;
		Integer a2=127;
		int a3=127;
		Integer b1=128;
		Integer b2=128;
		int b3=128;
		System.out.println(a1==a2);
		System.out.println(a1==a3);
		System.out.println(b1==b2);
		System.out.println(b1==b3);	
		
/*输出:true true false true

自动装箱时采用valueOf方法,由于127在静态数组的范围内,所以不是new的,

而128的两个引用是指向new出现对象的,所以第一个是true,第三个是false。

而包装类和基本数据类型比较时,只要数值是相等的,就相等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值