总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
批量查询
@Test
public void testSelectByBatchId(){
List users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));
users.forEach(System.out::println);
}
条件查询
@Test
public void testSelectByBatchIds(){
HashMap<String, Object> map = new HashMap<>();
//自定义条件查询,查询name=zhangsan并且age=19的用户
map.put(“name”,“zhangsan”);
map.put(“age”,19);
List users = userMapper.selectByMap(map);
users.forEach(System.out::println);
}
=====================================================================
分页在网站使用十分之多!
-
1、原始的limit进行分页
-
2、pageHelper第三方插件
-
3、Mybatis-plus内置插件
编写mybatis-plus配置类
// 最新版
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
return interceptor;
}
编写测试类
//测试分页查询
@Test
public void testPage(){
//参数一:第一页 参数二:页面显示5条数据
Page page = new Page<>(1,5);
userMapper.selectPage(page,null);
page.getRecords().forEach(System.out::println);
}
测试结果
===================================================================
通过ID删除
@Test
public void testDeleteById(){
userMapper.deleteById(“1410758327595810819L”);
}
控制台输出
查看数据库
批量删除
@Test
public void testDeleteBatchId(){
userMapper.deleteBatchIds(Arrays.asList(1410758327595810818L,7L,6L));
}
控制台输出
查看数据库
条件删除
@Test
public void testDeleteMap(){
HashMap<String, Object> map = new HashMap<>();
map.put(“name”,“zhangsan2”);
userMapper.selectByMap(map);
}
控制台输出
查看数据库
===================================================================
官方文档:https://mp.baomidou.com/guide/logic-delete.html
物理删除:从数据库中直接移除
逻辑删除:在数据库中没有被移除,而是通过一个变量来让他失效!deleted = 0 or deleted = 1
管理员可以查看被删除的记录!防止数据丢失,类似于回收站
1、在数据库中添加一个deleted字段
2、在实体类中添加属性
@TableLogic //逻辑删除注解
private Integer deleted;
3、配置
特别注意:mybatis-plus 3.3版本之后,不需要配置application配置文件,直接使用注解即可!不然会报错
mybatis-plus 3.3版本以上自行忽略一下配置
mybatis-plus:
global-config:
db-config:
logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后属性可以不用添加注解)
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
测试
控制台输出
查看数据库
Java面试核心知识点笔记
其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。
Java中高级面试高频考点整理
最后分享Java进阶学习及面试必备的视频教学
1)]
Java中高级面试高频考点整理
[外链图片转存中…(img-tQ3CaSei-1715509677061)]
[外链图片转存中…(img-DrVEBEel-1715509677062)]
最后分享Java进阶学习及面试必备的视频教学
[外链图片转存中…(img-R2TWZ6lC-1715509677062)]