面试指导
文章平均质量分 85
主要针对即将进入工作岗位的同学进行面试指导,主要包含面试题总结,而试经验总结等方面的资源和信息
编程指南针
这个作者很懒,什么都没留下…
展开
-
分布式事务六种解决方案
事务(Transaction)是操作数据库中某个数据项的一个程序执行单元(unit)。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。事务的四个特征: 1、Atomic原子性 事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程中,要么全部执行成功,要么全部不执行,任何一项失败,整个事务回滚,只有全部都执行成功,整个事务才算成功。原创 2023-03-06 22:42:59 · 1771 阅读 · 1 评论 -
一文搞懂常见十大排序算法
快速排序就是每次找一个基点(第一个元素),然后两个哨兵,一个从最前面往后走,一个从最后面往前面走,如果后面那个哨兵找到了一个比基点小的数停下来,前面那个哨兵找到比基点大的数停下来,然后交换两个哨兵找到的数,如果找不到最后两个哨兵就会碰到一起就结束,最后交换基点和哨兵相遇的地方的元素,然后就将一个序列分为比基点小的一部分和比基点大的一部分,然后递归左半部分和右半部分,最后的结果就是有序的了。首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。原创 2023-03-05 11:11:00 · 470 阅读 · 0 评论 -
面试中的常见算法,你了解几个?
冒泡排序算法、插入排序算法、选择排序算法、希尔排序算法、归并排序算法、快速排序算法、计数排序算法、计数排序算法、桶排序算法。原创 2023-03-05 11:08:29 · 201 阅读 · 0 评论 -
毕业进行时:人生的二次选择
大学是人生的第一次选择,而毕业面临的是第二次选择,两次选择有很强的关联性,但不是最终选择的前置条件!人生很短,选择很多,但决定人生的往往就在那关键几步,但人往往是不知道自己未来的命运的,也只能通过事后判断才知道自己当初的决定是否正确,也许你当时认为很正确的选择,事后往往让你后悔。所以选择往往需要经验,而经验需要积累,在没有经验,旁人可靠的指导或许对你有所帮助!也不知道写些什么,就用CSDN罗列的大纲和大家喷喷,不喜勿喷,个人所感而己!...原创 2022-06-19 18:51:48 · 1973 阅读 · 0 评论 -
SpringCache通用缓存学习
Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能,大大简化我们在业务中操作缓存的代码。Spring Cache只是提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。CacheManager是Spring提供的各种缓存技术抽象接口。原创 2022-05-23 16:27:43 · 496 阅读 · 0 评论 -
来聊聊ThreadLocal内存泄露分析
前几天有个学生问我ThreadLocal存在不存在内存泄漏,趁此机会和大家聊聊ThreadLocal到底存在不存在内存泄漏以及怎么避免。Thread中的threadLocals属性一切都要从Thread的一个属性threadLocals说起,让我们看下这个属性的介绍:/* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal class. */Th...原创 2022-03-12 20:19:08 · 175 阅读 · 2 评论 -
来聊聊ThreadLocal内存泄露分析
前几天有个学生问我ThreadLocal存在不存在内存泄漏,趁此机会和大家聊聊ThreadLocal到底存在不存在内存泄漏以及怎么避免。Thread中的threadLocals属性一切都要从Thread的一个属性threadLocals说起,让我们看下这个属性的介绍:/* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal class. */Th...原创 2022-03-12 18:43:28 · 997 阅读 · 0 评论 -
SQL 编程思想:一切皆关系
在计算机领域有许多伟大的设计理念和思想,例如: 在 Unix 中,一切皆文件。 在面向对象的编程语言中,一切皆对象。 关系数据库同样也有自己的设计思想:在 SQL 中,一切皆关系。关系模型关系模型(Relational model)由 E.F.Codd 博士于 1970 年提出,以集合论中的关系概念为基础;无论是现实世界中的实体对象还是它们之间的联系都使用关系表示。我们在数据库系统中看到的关系就是二维表(Table),由行(Row)和列(Column)组成。因此,也可以说关系表是原创 2022-03-12 18:42:38 · 249 阅读 · 0 评论 -
SpringBoot启动类的扫描注解的用法及冲突原则
背景SpringBoot 启动类上,配置扫描包路径有三种方式,最近看到一个应用上三种注解都用上了,代码如下:@SpringBootApplication(scanBasePackages={"a","b"})@ComponentScan(basePackages={"a","b","c"})@MapperScan({"XXX"})publicclassXXApplicationextendsSpringBootServletInitializer}那么,疑问来了:Sp...转载 2022-03-12 18:41:43 · 2283 阅读 · 1 评论 -
Redis常见面试题总结
RDB持久化可以手动执行也可以根据配置定期执行,它的作用是将某个时间点上的数据库状态保存到RDB文件中,RDB文件是一个压缩的二进制文件,通过它可以还原某个时刻数据库的状态。由于RDB文件是保存在硬盘上的,所以即使redis崩溃或者退出,只要RDB文件存在,就可以用它来恢复还原数据库的状态。原创 2022-02-28 08:31:02 · 359 阅读 · 0 评论 -
SQL中的in与not in、exists与not exists的区别以及性能分析
SQL优化必备知识点,in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的。原创 2022-02-28 08:29:20 · 403 阅读 · 0 评论 -
都说 HashMap 是线程不安全的,到底体现在哪儿?
前言:我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。原创 2022-02-28 08:28:13 · 1442 阅读 · 1 评论 -
面试必问:十大经典排序算法总结
面试必备十大算法,助你顺利进入大厂原创 2022-02-28 08:26:55 · 937 阅读 · 0 评论 -
Spring Boot常见企业开发场景应用、自动配置原理结构分析
Spring Boot常见企业开发场景应用、自动配置原理结构分析引言本篇目标目录环境准备Spring Java配置Spring Boot基本编程模型导入依赖导入配置编码常见企业开发场景应用构建Spring Java应用程序构建Junit测试用例构建Spring JDBC Template应用程序操作数据库构建Servlet、JSP程序构建SSH应用程序(Spring、Spring MVC、Hibernate)构建SSM应用(Spring、Spring MVC、MyBatis)构建SSJPA应用(Spring原创 2022-02-16 18:15:00 · 841 阅读 · 0 评论 -
Redis主从集群切换数据丢失问题如何应对?
异步复制同步丢失集群产生脑裂数据丢失原创 2022-02-16 18:02:26 · 1272 阅读 · 0 评论 -
面试必备基本知识HTTPS 原理分析
1.为什么用了 HTTPS 就是安全的?2.HTTPS 的底层原理如何实现?3.用了 HTTPS 就一定安全吗?原创 2022-02-16 18:01:07 · 260 阅读 · 0 评论 -
近期大厂面试题总结
产生死锁的原因主要是:(1)系统资源不足。(2)进程运行推进的顺序不合适。(3)资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。原创 2022-02-10 17:47:16 · 877 阅读 · 0 评论 -
积累这么多年的面试题与经验分享,免费下载
积累这么多年的面试题与经验分享,免费下载原创 2021-12-15 19:48:30 · 589 阅读 · 0 评论 -
面试之数据库SQL编写实战案例
好多同学在面试的过程中会碰到关于SQL查询的相关案例,让手写SQL语句,直接蒙蔽的不少哦,下面以几个面试题为例,谈谈SQL的编写,有题有答案,大家可以看看参考一下:数据库的基本准备:/*Navicat MySQL Data TransferSource Server : localhostSource Server Version : 50168Source Host : localhost:3306Source Database ...原创 2021-11-14 08:27:10 · 362 阅读 · 0 评论 -
面试官:讲讲Spring框架Bean的加载过程
spring作为目前我们开发的基础框架,每天的开发工作基本和他形影不离,作为管理bean的最经典、优秀的框架,它的复杂程度往往令人望而却步。不过作为朝夕相处的框架,我们必须得明白一个问题就是spring是如何加载bean的,我们常在开发中使用的注解比如@Component、@AutoWired、@Socpe等注解,Spring是如何解析的,明白这些原理将有助于我们更深刻的理解spring。需要说明一点的是spring的源码非常精密、复杂,限于篇幅的关系,本篇博客不会细致的分析源码,会采取抽丝剥茧的方原创 2021-11-14 08:23:34 · 5662 阅读 · 4 评论 -
面试官三连问:分库分表了解吧?业界有哪些常用方案?可能存在什么问题?
一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 ->分库和垂直分表。第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 ->分库。2、CPU瓶颈第一种:SQL问题,如SQ...原创 2021-11-11 17:37:30 · 242 阅读 · 1 评论 -
Redis官方的高可用性解决方案
Redis主从复制的问题Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用: 一旦主节点宕机,从节点作为主节点的备份可以随时顶上来。 扩展主节点的读能力,分担主节点读压力。 主从复制同时存在以下几个问题: 一旦主节点宕机,从节点晋升成主节点,同时需要修改应用方的主节点地址,还需要命令所有从节点去复制新的主节点,整个过程需要人工干预。 主节点的写能力受到单机的限制。 主节点的存储...原创 2021-11-11 17:35:34 · 119 阅读 · 0 评论 -
MySQL常见面试题解析
1.drop,delete与truncate的区别相同点:truncate和不带where子句的delete,以及drop都会删除表内的数据不同点: truncate会清除表数据并重置id从1开始,delete就只删除记录,drop可以用来删除表或数据库并且将表所占用的空间全部释放 truncate和delete只删除数据不删除表的结构。drop语句将删除表的结构被依赖的约(constrain),触发器(trigger),依赖于该表的存储过程/函数将保留,但是变为 invalid原创 2021-11-09 14:47:15 · 201 阅读 · 0 评论 -
HTTPS 原理分析
#HTTPS随着 HTTPS 建站的成本下降,现在大部分的网站都已经开始用上 HTTPS 协议。大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议相关的概念有 SSL 、非对称加密、 CA证书等,但对于以下灵魂三拷问可能就答不上了:1.为什么用了 HTTPS 就是安全的?2.HTTPS 的底层原理如何实现?3.用了 HTTPS 就一定安全吗?本文将层层深入,从原理上把 HTTPS 的安全性讲透。# HTTPS 的实现原理大家可能都听说过.原创 2021-11-09 14:45:52 · 154 阅读 · 0 评论 -
数据库分库分表详细拆解
一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库。2、CPU瓶颈第一种:SQL问题,如SQL中原创 2021-11-08 15:22:10 · 562 阅读 · 0 评论 -
怎么保证缓存和数据库一致性
背景缓存是软件开发中一个非常有用的概念,数据库缓存更是在项目中必然会遇到的场景。而缓存一致性的保证,更是在面试中被反复问到,这里进行一下总结,针对不同的要求,选择恰到好处的一致性方案。缓存是什么存储的速度是有区别的。缓存就是把低速存储的结果,临时保存在高速存储的技术。图片如图所示,金字塔更上面的存储,可以作为下面存储的缓存。我们本次的讨论,主要针对数据库缓存场景,将以redis作为mysql的缓存为案例来进行。为什么需要缓存存储如mysql通常支持完整的ACID特性,因为原创 2021-11-08 13:58:36 · 967 阅读 · 2 评论 -
【Spring源码】Spring中的AOP底层原理分析
AOP中的几个概念Advisor 和 AdviceAdvice,我们通常都会把他翻译为通知,其实很不好理解,其实他还有另外一个意思,就是“建议”,我觉得把Advice理解为“建议”会更好。比如,我们已经完成了一个功能,这时客户跟我们说,我建议在这个功能之前可以再增加一些逻辑,再之后再增加一些逻辑。在Spring中,Advice分为: 前置Advice:MethodBeforeAdvice 后置Advice:AfterReturningAdvice 环原创 2021-11-08 12:39:26 · 155 阅读 · 0 评论 -
RedisTemplate常用方法总结
很多公司都将redisTemplate进行了封装,封装成业务所需要的RedisUtil工具类方便进行调用,本篇文章总结了redisTemplate常用的一些方法。Redis常用的数据类型: String Hash List Set zSet Sorted set String类型判断是否有key所对应的值,有则返回true,没有则返回falseredisTemplate.hasKey(key)有则取出key值所对应的值r..原创 2021-11-08 12:38:06 · 663 阅读 · 0 评论 -
MongoDb数据库面试整理
MongoDB是目前最好的面向文档的免费开源NoSQL数据库。如果你正准备参加MongoDB NoSQL数据库的技术面试,你最好看看下面的MongoDB NoSQL面试问答。这些MongoDB NoSQL面试问答涵盖了NoSQL数据库基本的概念,复制(Replication),分片(Sharding),事务和锁,跟踪分析工具(Profiler),Nuances和日志等特性。让我们看看下面的这些MongoDB NoSQL数据库的面试问答吧:强调:mongodb是在4.0版本以后开始支持多文档事务特性,原创 2021-08-18 08:43:51 · 312 阅读 · 1 评论 -
面试必过之消息中间件RabbitMQ面试总结大全!
1、使用RabbitMQ有什么好处?抢购活动,削峰填谷,防止系统崩塌。延迟信息处理,比如 10 分钟之后给下单未付款的用户发送邮件提醒。解耦系统,对于新增的功能可以单独写模块扩展,比如用户确认评价之后,新增了给用户返积分的功能,这个时候不用在业务代码里添加新增积分的功能,只需要把新增积分的接口订阅确认评价的消息队列即可,后面再添加任何功能只需要订阅对应的消息队列即可。1.解耦,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!2.异步,将消息原创 2021-06-15 21:26:46 · 381 阅读 · 4 评论 -
Java模拟面试总结
1、SpringBoot的启动类?@SpringBootApplication{@SpringBootConfiguration(标识配置类)、@EnableAutoConfiguration(自动配置基于@import)、@ComponentScan (扫描路径设置)}启动流程:第一部分进行SpringApplication的初始化模块,配置一些基本的环境变量、资源、构造器、监听器,第二部分实现了应用具体的启动方案,包括启动流程的监听模块、加载配置环境模块、及核心的创建上下文环境模块,第...原创 2021-06-12 19:16:51 · 3035 阅读 · 3 评论