Java工程师面试题记录(持续更新)

Java

1.SpringCloud组件有哪些?

2.参数合法性校验

3.Mybatis分页插件的原理?

首先分页参数放到ThreadLocal中,拦截执行的sql,根据数据库类型添加对应的分页语句重写sql,例如:(select* from table where a)转换为 (select count(*) from table where a)和(select * from table where a limit ,)计算出了total总条数、pageNum当前第几页、pagesize每页大小和当前页的数据,是否为首页,是否为尾页,总页数等。

4.树型表的标记字段是什么?如何查询MySQL树型表?树型表的标记字段是parentid即父结点的id?

查询一个树型表的方法:
1)当层级固定时可以用表的自链接进行查询。
2)如果想灵活查询每个层级可以使用mysql递归方法,使用with RECURSIVE 实现。

5.MyBatis的ResultType和ResultMap的别?


ResultType:指定映射类型,只要查询的字段名和类型的属性名匹配可以自动映射。ResultMap:自定义映射规则,当查询的字段名和映射类型的属性不匹配时可以通过ResultMap自定义映射规则也可以实现一对多、一对一映射。

6、#{} 和 ${} 有什么区别?


#{}是标记一个占位符,可以防止sql注入。
${} 用于在动态 sql中拼接字符串,可能导致sql注入。

7、系统如何处理异常?


我们自定义一个统-的异常处理器去捕获并处理异常。
使用控制器增加注解@ControllerAdvice和异常处理注解@ExceptionHandler来实现。1)处理自定义异常
程序在编写代码时根据校验结果主动抛出自定义异常类对象,抛出异常时指定详细的异常信息,异常处理器捕获异常信息记录异常日志并响应给用户。
2)处理未知异常
接口执行过程中的一些运行时异常也会由异常处理器统一捕获,记录异常日志,统一响应给用户500错误在异常处理器中还可以针对某个异常类型进行单独处理。

Linux

  1. Linux查看日志命令
  • 实时监控:tail -f 日志文件(配合 grep 过滤关键字);
  • 关键字搜索:grep -n 关键字 日志文件(加 -A/-B/-C 看上下文);
  • 大文件分页:less 日志文件(支持搜索、翻页);
  • 压缩日志查看:zgrep/zless
  • 数据分析:awk 提取字段 + wc -l 统计次数。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值