![](https://img-blog.csdnimg.cn/5078cffa68eb4825a26ec5e7e12b5982.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java面经
文章平均质量分 82
Java面经
书启秋枫
手痒了,写代码!
展开
-
商城领域业务逻辑总结
① 首页的访问量非常大,而首页中的商品类目访问量更大,鼠标移动就在访问,查询所有的数据,如果每次访问都实时到数据库获取数据,数据库的访问压力太大。虽然只是一个查询操作,但是由于频繁的访问所以我们必须对其性能进行最大程度的优化。② 所以,比如我们一级类目查询下级目录数据放入Redis缓存来提高性能,这里我们为了降级业务之间耦合度,提高程序的可用性,采用优雅的自定义AOP注解和切面类来实现缓存,主功能代码不做修改,只是根据父id查询商品分类列表数据。③ 在自定义注解中设置以下参数:缓存前缀名,原创 2023-06-04 13:56:34 · 910 阅读 · 0 评论 -
Java 面试必会(应届必备)
代理模式。原创 2023-01-05 11:44:42 · 2367 阅读 · 0 评论 -
实战面试题录音总结
实战面试题录音总结原创 2023-06-02 21:31:30 · 774 阅读 · 0 评论 -
Java琐碎知识点
实现幂等性的方式可以因具体的应用场景而异,但以下是几种常见的实现方式原创 2023-04-18 15:10:34 · 929 阅读 · 0 评论 -
一篇学会MySQL索引优化、JUC、JVM 吊打面试官!
01_JUC概述_书启秋枫的博客-CSDN博客02_Lock锁_书启秋枫的博客-CSDN博客03_线程间通信_书启秋枫的博客-CSDN博客04_并发容器类_书启秋枫的博客-CSDN博客05_JUC强大的辅助类_书启秋枫的博客-CSDN博客06_Callable接口_书启秋枫的博客-CSDN博客07_阻塞队列(BlockingQueue)_书启秋枫的博客-CSDN博客08_ThreadPool线程池_书启秋枫的博客-CSDN博客09_多线程高并发底层原理_书启秋枫的博客-CSDN博客01_JVM快速入门_书启原创 2023-05-26 10:47:15 · 1177 阅读 · 0 评论 -
Java基础常见面试题总结
参考答案Java数据类型包括基本数据类型和引用数据类型两大类。基本数据类型有8个,可以分为4个小类,分别是整数类型(byte/short/int/long)、浮点类型(float/double)、字符类型(char)、布尔类型(boolean)。其中,4个整数类型中,int类型最为常用。2个浮点类型中,double最为常用。另外,在这8个基本类型当中,除了布尔类型之外的其他7个类型,都可以看做是数字类型,它们相互之间可以进行类型转换。原创 2022-09-26 22:51:55 · 233 阅读 · 0 评论 -
MySQL常见面试题总结
数据库的乐观锁需要自己实现,在表里面添加一个 version 字段,每次修改成功值加 1,这样每次修改的时候先对比一下,自己拥有的 version 和数据库现在的 version 是否一致,如果不一致就不修改,这样就实现了乐观锁。具体来说 MySQL 中的索引,不同的数据引擎实现有所不同,但目前主流的数据库引擎的索引都是 B+ 树实现的,B+ 树的搜索效率,可以到达二分法的性能,找到数据区域之后就找到了完整的数据结构了,所有索引的性能也是更好的。左连接是左边的表全部显示出来,右边的表显示出符合条件的数据;原创 2022-11-28 21:29:45 · 253 阅读 · 0 评论 -
Redis常见面试题总结
尽量使用 Redis 的散列表,把相关的信息放到散列表里面存储,而不是把每个字段单独存储,这样可以有效的减少内存使用。:指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。最简单粗暴的方法如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),我们就把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。关于 Redis 的性能,官方网站也有,普通笔记本轻松处理每秒几十万的请求。原创 2022-11-28 21:31:51 · 186 阅读 · 0 评论 -
Servlet的生命周期详解
(3)javax.servlet.http.HttpServlet这个抽象类是GenericServlet抽象子类。以后每次访问都是直接服务。(1)默认情况下,每一个Servlet都是在第一次被请求时,容器才会去实例化初始化它。(2)我们可以通过来设置servlet的启动时机。(2)javax.servlet.GenericServlet抽象子类。(1)Servlet生命周期经过4个阶段:实例化、初始化、服务、销毁。(1)javax.servlet.Servlet接口。原创 2023-01-06 17:56:06 · 493 阅读 · 0 评论 -
GET和POST请求的区别?
4. GET安全性非常低,get设计成传输数据,一般都在地址栏里面可以看到,post安全性较高,post传递数据比较隐私,所以在地址栏看不到, 如果没有加密,他们安全级别都是一样的,随便一个。POST请求通过request body传递参数,将请求信息放置在报文体中。2. GET请求把参数包含在URL中,将请求信息放在URL后面,都可以把所有的数据监听到。原创 2022-09-13 11:29:24 · 1029 阅读 · 0 评论 -
Mybatis中使用${}和使用#{}
Mybatis在对#{}进行预处理时,会把#{}处理成占位符,实际执行的时候才会把参数替换进去,相当于jdbc的PreparedStatement。上面这个配置实际打印出来的sql为这样有效的预防了sql注入。上面这个配置实际打印出来的sql为${} 则只是简单的字符串替换,在动态解析阶段,该 sql 语句会直接将变量值替换进去,这样就有可能会发生sql注入的风险。原创 2022-11-21 16:55:34 · 2011 阅读 · 0 评论 -
SpringMVC执行流程(面试题)
在SpringMVC框架中,一个比较核心的组件就是他的前端控制器,这个前端控制器就是SpringMVC开发的核心部分。前端控制器负责接收客户端的全部请求,用户把请求给了前端控制器之后,前端控制器把请求转发给我们Controller处理器对象,最后COntroller处理请求。3. 找到处理器以后处理器映射器向前端控制器返回一个执行链HandlerExecuteChina。4. 前端控制器请求处理器适配器HandlerAdapter。7. 处理器适配器向前端控制器返回ModelAndView。原创 2023-02-14 18:13:52 · 880 阅读 · 0 评论 -
Java-WEB+SSM 考试题库
(1).定义: 有两种方式[1]. 实现HandlerInterceptor接口[2]. 继承HandlerInterceptorAdapter。原创 2023-02-16 16:42:09 · 440 阅读 · 0 评论