记录常州java面试时问到的问题

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

注1:以下为个人理解或结合个人使用情况的回答,不一定全面和正确。如果有更好的回答可以评论。
注2:回答不详细的以后有空填补,面试时主要是需要自己发挥。

1.springboot和springmvc的区别

springmvc是spring提供的用于web开发的mvc框架
springboot是对spring框架以及常用的第三方框架进行整合的快速开发工具
springboot对springmvc进行了配置上的简化,使用springboot就不需要springmvc的那一套配置,
springboot自动完成了springmvc的功能注入,但本质上还是走的springmvc的代码。

2.springboot接收到的请求是个对象,且对象中的属性名和实体中的属性名不一致怎么办

对象实体类中在对应字段增加@JsonProperty标签
@JsonProperty("myName")
    private String acctName;

这样前台传myName就能解析到acctName字段,并且后台传给前台的返回中也是myName名称

实际测试时发现要使用@RequestBody

3.你的项目中登录时连接断开时间怎么设置

#单位s
server.session.timeout=10

4.说一下你的项目怎么集成amq的

https://blog.csdn.net/qq_39089503/article/details/87877379

5.springboot使用外部tomcat怎么配置

https://blog.csdn.net/qq_39089503/article/details/90343388

6.springboot返回页面的方法

非前后端分离项目中
(待补充)
1.返回静态页面
2.使用模板引擎

7.项目中登录时权限和菜单是如何设计的

目前项目中:
Account用户表,和角色多对一关系,和权限多对多关系
Auth权限表,和菜单多对一关系
Menu菜单表
Role角色表,和权限多对多关系,和用户一对多关系

用户可以直接使用角色的权限,也可以额外定制单独的权限

8.登录后用户信息怎么记录

使用redis缓存(待补充)

9.dubbo,mq的使用场景

dubbo:dubbo可以让外部接口像本地接口调用一样方便,使用dubbo可以获取实时数据,但是服务方挂了你的调用也挂了。
amq:为了多个系统之间保持数据的一致性,当A系统修改后异步通知其他系统;
当某个流程要异步操作几个模块时,可以使用amq进行通知调用,提高效率。

10.amq数据丢失了怎么办

amq有两种消息模式,一种是queue,一种是topic
对于queue,一般不会出现丢失情况,即使服务器崩溃了,只要消息没有消费掉也能够恢复,
如果真丢失,可能是发布消息后被其他服务消费掉了。
对于topic,如果发布一个消息,结果没有消费方,那么该topic会被抛弃丢失。
mq支持多种方式的数据存储,可以将消息归档以便查找或者重发。
目前项目中是使用oracle记录发送和接收的消息内容,自己写了重发功能。

11.arraylist线程安全怎么解决

使用vector
使用Collections.synchronizedList(new ArrayList<Map<String,Object>>());
使用concurrent包的CopyOnWriteArrayList

12.amq ack机制

在事务性会话中,当一个事务被提交的时候,ack确认自动发生;在非事务性会话中,消息何时被确认取决于创建会话时的应答模式;
一般创建mq session 使用自动签收(Session.AUTO_ACKNOWLEDGE),如果Session设置为CLIENT_ACKNOWLEDGE 时,消费方必须手动调用acknowledge方法才为消费成功,然后从队列里移除该条数据。

13.说下线程池,以及主要参数

13

14.git分支如何合并到master

14

15.谈一下你对mysql的索引的理解

15

16.对于后台,小程序开发和web开发的区别

16

17.介绍下JVM垃圾回收算法有那几种

17.

猜你喜欢

转载自blog.csdn.net/qq_39089503/article/details/93858455