![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
面试笔试题
面试笔试题
ThinkPet
青年码农一枚
展开
-
【编程题】给定一个数组找出其中大于0的数字中倒数第二小的数字的下标
【代码】【编程题】给定一个int型数组找出其中大于0的数字中倒数第二小的数字的下标。原创 2024-06-14 14:24:22 · 159 阅读 · 0 评论 -
阿里巴巴mysql设计规范
说明:任何字段如果为非负数,必须是 unsigned。正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除说明:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、表名、字段名,都不允许出现任何大写字母,避免节外生枝正例:aliyun_admin,rdc_config,level3_name反例:AliyunAdmin,rdcConfig,level_3_name。转载 2024-04-25 15:49:18 · 44 阅读 · 0 评论 -
【面经】先更新缓存好?还是先更新数据库好?
如果数据的一致性非常重要,那么应该选择先更新数据库,再更新缓存的策略。如果数据库的负载是一个问题,那么应该选择先更新缓存,再异步更新数据库原创 2023-11-10 18:12:22 · 315 阅读 · 0 评论 -
【面经】如何使用less命令查看和搜索日志
less x.log 然后shift+F 在搜索框搜索内容原创 2023-11-10 09:50:13 · 1217 阅读 · 0 评论 -
【面经】如何查看服务器内存和磁盘空间占用
free -g ; df -h原创 2023-11-09 10:00:26 · 168 阅读 · 0 评论 -
【面经】排查cpu占用100%的操作方法
4. 使用jstack 分析 进程pid,即可找到问题代码位置。将堆栈打印到x.txt,可以查看x.txt即可找到问题代码位置。1.top命令查看cpu100%的进程pid。92156 的16 进制是167fc。原创 2023-11-09 09:56:55 · 163 阅读 · 0 评论 -
【面经】讲一下Spring Bean的生命周期
Spring容器管理Bean的生命周期,包括实例化、属性设置、初始化、使用和销毁阶段。在初始化和销毁阶段,开发人员可以插入自定义逻辑,以确保Bean的正确配置和资源释放原创 2023-11-09 09:39:12 · 87 阅读 · 0 评论 -
【面经】常见的Redis缓存问题有哪些?如何解决
穿透-查询了不存在的数据;击穿-热点数据缓存失效;雪崩-大量缓存同时失效原创 2023-11-09 09:27:30 · 96 阅读 · 0 评论 -
【面经】synchronized和lock的区别
synchronized是Java语言内置的关键词,依赖于JVM的解释器来锁定,而lock是一个接口,由代码实现加锁和解锁原创 2023-11-09 09:16:25 · 59 阅读 · 0 评论 -
【面经】讲一下BASE理论
其核心思想是即使无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。BASE理论是 基本可用(Basically Available)、软状态(Soft State)、最终一致性(Eventual Consistency)的简称。BASE理论满足CAP原理,通过牺牲强一致性获得可用性,一般应用于服务化系统的应用层或者大数据处理系统中,通过达到最终一致性来尽量满足业务的绝大多数需求。原创 2023-11-09 09:10:54 · 105 阅读 · 0 评论 -
【面经】ES中分片是什么?副本是什么?
分片是将一个索引切分为多个底层物理的Lucene索引,这些被切分出来的每个部分称为一个分片。每个分片都是一个全功能且独立的索引,可由集群中的任何主机存储。在创建索引时,用户可以指定其分片的数量。默认情况下,每个索引有5个分片。分片实现了集群的分布式存储,方便数据在多个节点上进行存储和查询。原创 2023-11-09 09:02:50 · 729 阅读 · 0 评论 -
【面经】死锁是什么?如何避免死锁?
死锁是指多个线程相互等待对方释放资源,导致程序无法继续执行的情况。原创 2023-11-09 08:49:35 · 69 阅读 · 0 评论 -
【面经】讲一下springboot自动装配原理
对于第三方jar包,SpringBoot会采用SPI机制,在/META-INF/目录下增加spring.factories文件,然后SpringBoot会自动根据约定,自动使用SpringFactoriesLoader来加载配置文件中的内容。在具体实现上,SpringBoot启动时会依赖@Configuration的配置类,该类中会声明为Bean注解,然后将方法的返回值或者是属性注入到IOC容器中。它能自动地将其他组件中的Bean装载到IOC容器中,而不需要开发人员再去配置文件中添加大量的配置。原创 2023-11-09 08:43:57 · 69 阅读 · 0 评论 -
【面经】Spring框架中用了哪些设计模式
模板方法模式:Spring框架中的一些模板方法模式可以帮助我们实现代码的复用和抽象。通过模板方法模式,Spring定义了一些通用的操作流程,然后通过回调方法让用户自定义具体的实现。策略模式:Spring的Bean配置中,策略模式允许根据条件动态选择不同的实现。通过观察者模式,Spring可以将事件通知给注册的观察者,从而实现各组件之间的解耦。这只是Spring框架中运用的一些设计模式的简单介绍,实际上Spring还使用了其他许多设计模式来构建灵活、可扩展的应用程序。原创 2023-11-09 08:18:52 · 180 阅读 · 0 评论 -
【面经】讲一下mysql的b+树
mysql的b+树原创 2023-11-09 01:05:04 · 254 阅读 · 0 评论 -
【面经】讲一下你对jvm和jmm的了解
Full GC是Java虚拟机中的一种垃圾回收方式。它会在整个堆空间中执行垃圾回收,清理所有不再被引用的对象所占用的内存空间。通常,Full GC会在堆空间或者整个堆空间被占满时触发,它会清理所有的年老代对象和永久代对象。这是一种比较耗时的操作,因为它需要扫描整个堆空间,找到所有不再被引用的对象,并将它们标记为可回收的。堆空间不足:当堆空间的可用空间不足以分配新对象时,会触发Full GC。在这种情况下,Full GC会清理整个堆空间。原创 2023-11-09 00:44:52 · 651 阅读 · 0 评论 -
【面经】讲一下线程池的参数和运行原理
通过以上参数和运行原理可以看出,线程池可以有效地控制线程的数量和任务队列的大小,从而避免过多创建和销毁线程带来的开销,提高系统的性能和稳定性。线程池通过预先创建一定数量的线程,并将任务提交给这些线程执行,从而避免了频繁创建和销毁线程的开销。如果非核心线程执行完任务后,任务队列中没有待执行的任务,且非核心线程数量小于最大线程数,则创建一个新的非核心线程来执行任务;如果未满,则创建一个新的核心线程来执行任务。如果核心线程执行完任务后,任务队列中还有待执行的任务,则核心线程会从任务队列中取出任务并执行。原创 2023-11-08 23:52:46 · 198 阅读 · 0 评论 -
Java6种单例模式写法
创建一个枚举,枚举成员为INSTANCE。使用枚举类.INSTANCE即可获取实例。调用静态内部类时,在静态内部类里初始化实例。原创 2023-11-08 23:09:14 · 687 阅读 · 0 评论 -
【面经】spring,springboot,springcloud有什么区别和联系
它内置了servlet容器,约定大于配置,简化了Spring开发的配置流程,提高了开发效率。SpringCloud:是一个服务治理平台,是若干个框架的集合,提供了全套的分布式系统解决方案。Spring是基础框架,SpringBoot基于Spring进行了简化,而SpringCloud则是在SpringBoot的基础上提供了更全面的分布式系统解决方案。综上所述,Spring、SpringBoot、SpringCloud都是Java开发中的重要框架,它们之间存在一定的联系和区别。原创 2023-11-08 21:48:31 · 329 阅读 · 0 评论 -
【面经】讲一下spring aop
Spring Aop默认使用的是JDK动态代理。当类没有实现接口时,才使用cglib的动态代理原创 2023-11-08 21:41:54 · 196 阅读 · 0 评论 -
【面经】什么是回表?
回表-就是拿到这条记录的主键ID,到主键索引中找到整条记录。原创 2023-11-08 21:34:36 · 318 阅读 · 1 评论 -
【面经】api接口响应超时如何排查解决
日志是否有异常;代码逻辑是否正确;SQL是否超时;启用async;启用缓存;水平扩展原创 2023-11-08 21:26:13 · 514 阅读 · 0 评论 -
【面经】SQL优化方法论
mysqld][mysqld]这将启用慢查询日志。4. 添加或修改选项。这指定了慢查询日志文件的路径和名称。根据你的需要,你可以选择不同的路径和文件名。5. 添加或修改选项。这定义了慢查询的阈值,以秒为单位。默认值是0.001秒(1毫秒)。你可以根据需要将其设置为适当的值。或者,根据你的操作系统和安装方式,使用适当的命令来重启MySQL服务。完成上述步骤后,MySQL将开始记录慢查询日志到指定的文件中。你可以使用常规的文本编辑器打开日志文件进行查看和分析。原创 2023-11-08 21:11:47 · 501 阅读 · 0 评论 -
【面经】讲下spring bean的三级缓存与循环依赖问题
单例缓存,早期单例缓存,单例工厂缓存原创 2023-11-07 16:35:00 · 81 阅读 · 0 评论 -
【面经】讲一下synchronized锁升级的过程
synchronized锁升级是指从偏向锁到轻量级锁,再到重量级锁的过程原创 2023-11-03 18:15:26 · 128 阅读 · 0 评论 -
【面经】什么是行锁/表锁,什么时候锁行/锁表
【面经】需要同时修改或查询表中多行数据时,应选择行锁;而在只需要对整个表进行操作时,可以选择表锁原创 2023-11-03 18:03:29 · 241 阅读 · 0 评论 -
【面经】服务熔断和服务降级的区别
服务降级是指当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。服务降级是系统自我保护的一种机制,以确保系统不会因过载而崩溃。原创 2023-11-03 17:40:50 · 174 阅读 · 0 评论 -
【面经】谈谈你对FastDFS的了解
【面经】谈谈你对FastDFS的了解。原创 2023-10-31 21:09:00 · 187 阅读 · 0 评论 -
【面经】Redis缓存的淘汰策略
redis缓存的淘汰策略,默认是LRU最近最少未使用原创 2023-10-31 20:54:54 · 103 阅读 · 0 评论