Java面试篇一

面试流程:首先做自我介绍,然后介绍最近做的项目,面试官问一些项目相关问题,接着问八股文,八股文如下:

1、说一下数据库的三大范式,建表应该注意什么

  • 第一范式:每个列不可再分

  • 第二范式:每列都依赖于主键列

  • 第三范式:每列不可依赖除主键列的其他列

    若出现,则需要分表,但不一定要求满足三大范式

2、mysql查询6月份的数据,最少使用三种方式

  • between

  • in

  • where

3、mysql常用函数

  • RANK()排序函数

  • DATE_FORMAT(date,format)日期函数,用于日期格式的转换

  • Lcase(str)把字符串所有字母转换为小写

  • Ucase(str)把字符串所有字转换为大写

  • Length(str)计算str长度

  • Char_length()查看字符串长度

4、怎么查看mysql索引是否生效

  • explain

5、mysql索引什么时候会失效,失效了怎么办

  • 模糊查询的时候,第一个通配符使用的是%

  • 使用or的时候可能会失效,如果or两边的字段都有索引才会走索引,如果一个字段上没有索引,那么另一个字段上的索引也会消失

  • 在where当中索引列表参与了运算,索引会失效

  • 在where当中索引使用了函数,索引失效

  • 使用复合索引的时候,没有使用左侧的列查找,索引会失效

6、sql优化

  • 尽量避免在where字句中使用!=或<>操作符,否则将引擎会放弃走索引而走全表扫描

  • 尽量避免在where字句中对字段进行null判断,否则也会导致引擎放弃走索引而走全表扫描。可以用0代替判断,前提是保证字段不能为null

  • 尽量避免在where字句中用or拼接,否则也会走全表扫描。可以通过union all拼接代替

  • 尽量避免在where语句字句中对字段进行函数操作

  • 尽量不使用like做搜索查询,若要提高效率,可以采用全文检索

  • 尽量不使用in或者not in·查询,否则会导致全表扫描,可以用between代替in

7、Spring boot 有哪些注解

  • component:泛指各种组件

  • controller(控制层)、service(业务层)、repository(数据访问层)都可以称为component

  • Autowired 、Resource:都可以注入bean

  • Configuration:声明当前类为注解类

  • ComponentScan:对于Component进行扫描

  • Restcontroller:相当于controller和ResponseBody的组合,意味着,该controller的所有方法都加上了ResponseBody

  • PathVariable:用于接收路径参数

  • ResponseBody:允许返回值放到response内,而不是一个页面,通常返回json数据

  • Value:注入数据

  • Aspect声明一个切面

  • After在方法执行之后执行(方法上)

  • Before在方法执行之前执行(方法上)

  • Around在方法执行之前与之后执行(方法上)

  • PointCut 声明切点

8、restcontroller和controller的区别和使用场合

  • restcontroller注解相当于controller和responsebody两者合并起来的作用

9、SpringBoot 配置文件加载优先级

  • 如果application.yml和application.properties文件同时存在,这个时候两个文件都有效,如果都配置了同一个属性,那么最终生效的是application.properties文件中的属性

10、ajax传递什么格式的数据,如何传递文件到后台

  • Ajax传递数据的格式有三种,分别是html、xml和json格式

11、redis有多少个库

  • 16个库 0-15

12、如何清理redis中的数据

  • 定期删除:指的是redis默认每隔100ms就随机抽取一些设置了过期时间的key,检查是否过期,如果过期就删除

  • 内存淘汰机制:8种

    1、noevication : 不会驱逐任何 key (默认)

    2、allkeys-lru: 对所有的 key 使用 lru 算法进行删除

    3、volatile-lru: 对所有的设置了过期时间的 key 进行 lru 算法进行删除

    4、allkeys-random: 对所有 key 随机删除

    5、volatile-random: 对所有设置了过期时间的 key 随机删除

    6、volatile-ttl :马上删除要过期的 key

    7、allkeys-lfu: 对所有 key 进行 lfu 算法进行删除

    8、volatile-lfu: 对所有设置了过期时间的 key 使用 lfu 算法进行删除

13、Linux基本指令 (15个)

  • ls 显示文件或目录

  • mkdir 创建目录

  • cd 切换目录

  • touch 创建空文件

  • cat 查看文件内容

  • cp 拷贝

  • mv 移动或重命名

  • rm 删除文件

  • pwd 显示当前目录

  • ifconfig 查看网络情况

  • ping 测试网络连通

  • clear 清屏

  • reboot 重启

  • hostname 显示主机名

  • ps 显示瞬间进程状态 ps -aux

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值