杭州端点网络科技 Java 实习生一面

1.SpringBoot的注解有哪些

2.SpringBoot的注解有哪些

3.MyBatis的一级缓存和二级缓存

一级缓存localCache 在应用运行过程中,我们有可能在一次数据库会话中,执行多次查询条件完全相同的 SQL, MyBatis 提供了一级缓存的方案优化这部分场景,如果是相同的 SQL 语句,会优先命中一级缓存, 避免直接对数据库进行查询,提高性能。 阿里内部资料 每个 SqlSession 中持有了 Executor,每个 Executor 中有一个 LocalCache。当用户发起查询时, MyBatis 根据当前执行的语句生成 MappedStatement,在 Local Cache 进行查询,如果缓存命中 的话,直接返回结果给用户,如果缓存没有命中的话,查询数据库,结果写入 Local Cache,最后 返回结果给用户。具体实现类的类关系图如下图所示 alt

二级缓存 在上文中提到的一级缓存中,其最大的共享范围就是一个 SqlSession 内部,如果多个 SqlSession 之间需要共享缓存,则需要使用到二级缓存。开启二级缓存后,会使用 CachingExecutor 装饰 Executor,进入一级缓存的查询流程前,先在 CachingExecutor 进行二级缓存的查询,具体的工作 流程如下所示。 image-20240614172019554 二级缓存开启后,同一个 namespace 下的所有操作语句,都影响着同一个 Cache,即二级缓存被 多个 SqlSession 共享,是一个全局的变量。 当开启缓存后,数据的查询执行的流程为:

二级缓存 -> 一级缓存 -> 数据库

  1. MyBatis 的二级缓存相对于一级缓存来说,实现了 SqlSession 之间缓存数据的共享,同时粒度 更加细,能够到 namespace 级别,通过 Cache 接口实现类不同的组合,对 Cache 的可控性 也更强。
  2. MyBatis 在多表查询时,极大可能会出现脏数据,有设计上的缺陷,安全使用二级缓存的条件 比较苛刻。
  3. 在分布式环境下,由于默认的 MyBatis Cache 实现都是基于本地的,分布式环境下必然会出现 读取到脏数据,需要使用集中式缓存将 MyBatis 的 Cache 接口实现,有一定的开发成本,直 接使用 Redis、Memcached 等分布式缓存可能成本更低,安全性也更高。

4.用过JPA吗

5.用过gitlab或者svn吗

6.虚拟机常用注解

7.如何在虚拟机上部署一个项目

8.如何上传文件和图片,引入什么jar包

#软件开发笔面经#
全部评论
佬,是端点科技吗
2 回复 分享
发布于 10-01 13:12 江苏
南京端点150一天
2 回复 分享
发布于 10-01 23:15 山东
1 回复 分享
发布于 10-01 12:07 福建
虚拟机常用注解?
1 回复 分享
发布于 10-01 12:13 江西
端点他们家实习生统一价,150/天,批发了属于是
1 回复 分享
发布于 10-01 18:48 浙江
我勒个dj呀,哈哈哈哈哈哈哈哈哈哈哈哈我第一家实习公司就是端点,端点也是好起来了,也是给白条面试了
1 回复 分享
发布于 10-03 21:51 安徽
不是秋招吗,怎么还在面实习
1 回复 分享
发布于 10-10 23:25 浙江
佬,可以给个杭州互联网公司的表嘛,我也很想回杭州,但感觉能投的好少
1 回复 分享
发布于 10-11 21:33 陕西
端点垃圾公司
1 回复 分享
发布于 10-14 13:07 江苏
笑死,大家都是杭州端点团建是吧
1 回复 分享
发布于 10-29 16:34 湖南
投它已读不回
点赞 回复 分享
发布于 10-01 13:03 广东

相关推荐

不愿透露姓名的神秘牛友
12-13 08:55
点赞 评论 收藏
分享
评论
9
21
分享
牛客网
牛客企业服务