Java性能优化推荐书!如何应对缓存穿透和缓存雪崩问题

2023-10-17 20:19

本文主要是介绍Java性能优化推荐书!如何应对缓存穿透和缓存雪崩问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

京东一面凉经

  1. object的方法,7大方法
  2. synchronized方法讲解
  3. synchronized方法实现原理
  4. volatile关键字的原理
  5. 锁的分类
  6. 偏向锁讲解
  7. NoClassDefFoundError和ClassNotFoundException的区别
  8. 追问,ClassNotFoundException是不是只发生在编译时,运行时可不可以
  9. 类加载机 制
  10. redis过期策略及内存淘汰机制
  11. mysql的索引种类4种
  12. Innodb和myIsam的区别
  13. Innodb的索引结构
  14. B+树的优缺点
  15. 海量数据的索引有什么影响
  16. 选择联合索引还是多索引,最左前缀的规则
  17. CAP理论的关系
  18. 见过哪些系统,保证两个牺牲一个的
  19. 一致性Hash
算法题:
给一个正数N,求这个N的所有的因子分解;
N = 12;
Ans = {12},{6,2},{3,4},{3,2,2}
解法:递归

京东二面凉经

  1. 自我介绍+项目
  2. 项目中的异步怎么做的?具体说说
  3. 用户密码的安全性怎么保证的?
  4. mybatis底层怎么实现的?(不会)
  5. tcp中拥塞控制和流量控制有什么区别?
  6. 流量控制具体怎么控制的?
  7. 拥塞控制具体的算法怎么样的?
  8. Java中的锁有用到哪些?
  9. 说说syn、re和cas的区别?
  10. cas具体怎么现实的?
  11. 进程和线程的区别?具体讲下什么情况下是多进程,什么情况下是多线程?
  12. java中的map有哪些?各个简单介绍下
  13. hashmap的底层数据结构是怎么样的?
  14. 有没有map是按key的值排序的?底层怎么现实的?
  15. 类的加载流程?具体每一步做了什么?
  16. Spring Bean 的作用域。
两道算法题
1、有序二维数组找target,找到返回坐标,找不到返回[-1, -1];
2、树的根节点到叶子节点的所有路径和。

失败乃成功之母

以上就是第一次京东面试的全部内容了,一面二面是接着面的,时长2个小时,经历下来,就一个感受:京东的面试太硬核了,就是会一直问到底,看你到底掌握到什么程度,如果掌握的不深刻很容易就被问出来了。二面完之后就让粉丝回家了,PASS的也是很含蓄了。

但是你以为这样就结束了?当然没有!

据我所知京东跳动投递简历是有三个月的锁定时间,所以这次失败了不代表没有下次。
然后就总结了经验并为下次面试作准备并开始了三个月的闭关之旅。

1. 恶补JAVA并发底层的知识,尤其是synchronized,volatile和hashmap的
2. 刷算法题,需要详细复习下数据结构与算法的知识
3. 了解高并发下的问题解决方案与性能调优
4. 阅读是spring框架的源码,提升自己的竞争优势

重整旗鼓再战京东

这次面试官果然上来就直接问:看你6月份也来面过京东但没有通过,你觉得你现在的优势在哪里呢??

回答:因为上次来贵公司面试没有准备充分,同时在之后认识到自己有些技术方面确实明显不足,所以回去经过系统的学习,我觉得这次能够胜任这份工作!

然后面试官看着他笑了笑(应该是欣赏的意思吧),然后第二次面试就正式开始了!
因为第二次面试与第一次相差不大,第二次面试内容通过知识点的分类给大家分享出来。

JVM

  1. 什么样的垃圾才被回收?
  2. 如何利用JFR和JMC监控Java程序?
  3. 解释下Java虚拟机内存模型
  4. JVM垃圾收集机制
  5. 什么样的对象会进入老年代
  6. 讲一下OOM与调优

MySQL

  1. 说说自己对于 MySQL 常见的两种存储引擎:MyISAM与InnoDB的理解?
  2. 数据库索引了解吗?
  3. 为什么索引能提高查询速度?
  4. Mysql如何为表字段添加索引?
  5. 对于大表的常见优化手段说一下?

spring

可能是简历上专门写了阅读过源码,所以这次问spring的比较多

  1. Spring 框架中都用到了哪些设计模式?
  2. Spring事务的实现方式和实现原理
  3. Bean Factory和ApplicationContext有什么区别?
  4. 什么是Spring中的依赖注入?
  5. IOC(依赖注入)有哪些不同类型?
  6. 解释Spring Bean的生命周期?
  7. 有哪些重要的bean生命周期方法?你能重写它们吗?

分布式

  1. 为什么要用 redis缓存?
  2. 为什么要用 redis 而不用 map/guava 做缓存?
  3. redis 和 memcached 的区别?
  4. redis 常见数据结构以及使用场景分析?(String,Hash,List,Set,Sorted Set)
  5. redis 设置过期时间。
  6. redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)
  7. redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)?
  8. redis 事务。
  9. 缓存雪崩和缓存穿透问题解决方案。
  10. 如何解决 Redis 的并发竞争 Key 问题。
  11. 如何保证缓存与数据库双写时的数据一致性?
  12. 什么是消息队列?为什么要用消息队列?

第二次面试总结

第二次去京东面试因为准备的时间比较长,所以面试问题基本都在意料之中,最终也成功拿下了京东的offer,可喜可贺!
在这里插入图片描述

最后

每年转战互联网行业的人很多,说白了也是冲着高薪去的,不管你是即将步入这个行业还是想转行,学习是必不可少的。作为一个Java开发,学习成了日常生活的一部分,不学习你就会被这个行业淘汰,这也是这个行业残酷的现实。

如果你对Java感兴趣,想要转行改变自己,那就要趁着机遇行动起来。或许,这份限量版的Java零基础宝典能够对你有所帮助。

领取这份Java零基础宝典只需要点击这里即可免费下载

va零基础宝典**能够对你有所帮助。

领取这份Java零基础宝典只需要点击这里即可免费下载

[外链图片转存中…(img-OigPf4hW-1625744961573)]

这篇关于Java性能优化推荐书!如何应对缓存穿透和缓存雪崩问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/227703

相关文章

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

java如何分布式锁实现和选型

《java如何分布式锁实现和选型》文章介绍了分布式锁的重要性以及在分布式系统中常见的问题和需求,它详细阐述了如何使用分布式锁来确保数据的一致性和系统的高可用性,文章还提供了基于数据库、Redis和Zo... 目录引言:分布式锁的重要性与分布式系统中的常见问题和需求分布式锁的重要性分布式系统中常见的问题和需求

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora