
面试
文章平均质量分 88
暖阳爱学计算机
这个作者很懒,什么都没留下…
展开
-
JVM面试题
程序计数器:线程私有的,内部保存的字节码的行号。用于记录正在执行的字节码指令的地址堆(线程共享的区域):主要用来保存对象实例,数组等,当堆中没有内存空间可分配给实例,也无法再扩展时,则抛出OutOfMemoryError异常年轻代被划分为三部分,Eden区和两个大小严格相同的Survivor区,根据JVM的策略,在经过几次垃圾收集后,任然存活于Survivor的对象将被移动到老年代区间。老年代主要保存生命周期长的对象,一般是一些老的对象JDK1.7和JDK1.8的区别JDK1.7有一个永久代。原创 2023-07-31 16:22:40 · 185 阅读 · 0 评论 -
并发编程面试题
AQS:AbstractQueuedSynchronizer,是多线程中的队列同步器,是一种锁机制,它是作为一个基础框架使用的AQS常见的实现类ReentrantLock 阻塞式锁Semaphore 信号量CountDownLatch 倒计时锁工作机制在AQS中维护了一个使用了volatile修饰的state属性来表示资源的状态,0表示无锁,1表示有锁提供了基于 FIFO 的双向等待队列,类似于 Monitor 的 EntryList,存储排队的线程。原创 2023-07-28 22:05:49 · 234 阅读 · 0 评论 -
集合面试题
在添加元素或初始化的时候都需要调用resize方法进行扩容,第一次添加数据初始化数组长度是16,以后每次都是达到了扩容阈值(数组长度*0.75)原创 2023-07-22 20:50:19 · 159 阅读 · 0 评论 -
消息中间件面试题
消息中间件1.RabbitMQ如何保证消息不丢失2.RabbitMQ消息重复消费问题如何解决3.RabbitMQ延迟队列(死信交换机)了解过吗4.RabbitMQ有消息堆积怎么解决5.RabbitMQ高可用机制1.RabbitMQ如何保证消息不丢失生产者确认机制持久化消费者确认机制消费者失败重试机制2.RabbitMQ消息重复消费问题如何解决解决方案:每个消息设置唯一标识id幂等方案(分布式锁,数据库锁(悲观锁,乐观锁))3.RabbitMQ延迟队列(死信交换机)了解过吗原创 2023-07-19 20:46:05 · 115 阅读 · 2 评论 -
微服务面试题
创建类实现IRule接口,可以指定负载均衡策略,这个是全局的,对所有的远程调用都起作用在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略,只是局部对配置的这个服务生效远程调用雪崩:一个服务失败,导致整条链路的服务都失败的情形解决方案:服务降级:服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃,一般在实际开发中与feign接口整合,编写降级逻辑服务熔断。原创 2023-07-19 19:45:58 · 88 阅读 · 0 评论 -
MySQL面试题
答:索引(index)是帮助MySQL高效获取数据的数据结构(有序)提高数据索引效率,降低数据库的IO成本通过索引列对数据进行排序,降低数据排序的成本,减低CPU消耗话术:嗯,索引在项目中还是很常见的,索引是帮助MySQL高效获取数据的数据结构,能够提高数据索引效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,减低CPU消耗答;聚簇索引(聚集索引):数据和索引放在一起,B+树的叶子节点保存了整行数据,有且只有一个。原创 2023-05-25 14:30:01 · 148 阅读 · 0 评论 -
Redis面试题
缓存穿透:查询一个不存在数据,MySQL查询不到数据也不会直接写入缓存,就会导致每次请求都查数据库,这种情况大概率是遭到了攻击。解决方案:1.缓存空数据:查询结果为空时,仍把这个空结果存入缓存。优:简单缺:消耗内存,可能发生不一致的问题2.布隆过滤器什么是布隆过滤器?布隆过滤器:用于检索一个元素是否在一个集合中,拦截不存在的数据。我们当时使用的是redisson实现的布隆过滤器。底层原理:初始化一个bitmap(位图)的数组,默认为0。原创 2023-07-04 17:14:58 · 101 阅读 · 0 评论 -
Spring框架
AOP:面向切面编程,在spring中用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取公共模块复用,降低耦合,提高可维护性。原创 2023-07-17 20:58:15 · 69 阅读 · 0 评论