基本原则:

各种知识点,以及对应的会出现的问题和其局限性,及怎样解决。还有就是同一种组件的横向比较

例如CAS,以及使用CAS会出现的问题:ABA问题,自旋会消耗CPU问题,只能锁定一个变量的局限性问题。

Redis使用过程中会遇到的缓存穿透,缓存击穿,缓存雪崩,缓存满了以后的淘汰策略等。

数据库索引使用过程中会遇到的索引失效,怎样查看索引使用情况的explain等。

MQ的各种实现的横向比较,各种数据库的横向比较等。

记录一下可能被问到的知识点

1.spring源码,用到了哪些设计模式

2.JVM优化: 预优化、卡顿、出问题怎么办,还有就是做过什么优化,举例说明

JVM相关文章:【深入Java虚拟机】之一:Java内存区域与内存溢出_兰亭风雨的专栏-CSDN博客_java内存区域与内存溢出

3.写到简历里的东西,最好都做好相关知识点的准备,如果被问到,却答不上来,会很尴尬

4.React 函数式组件和类组件的区别

5.重要:在项目中遇到过什么难题?怎样解决的?多准备几个,自己上网搜,比如内存问题,线程问题等等吧

具体知识点:

Java官方文档:

Java Platform, Standard Edition Documentation - Releases (oracle.com)

Home: Java Platform, Standard Edition (Java SE) 8 Release 8 (oracle.com)

What's New in JDK 8 (oracle.com)

JDK 11 Release Notes, Important Changes, and Information (oracle.com)

1.Redis

Redis集群原理详解_张维鹏的博客-CSDN博客_redis集群读写分离原理

(1).Redis做分布式锁,用到哪些命令

使用nx, 只有在key不存在的时候,才能set成功

使用ex,为锁设置过期时间

set key value nx ex 10s

(2).Redis持久化

RDB全量,AOF增量

(3).Redis缓存过期,并发排他

如果一个key过期,但是有大量并发请求过来,怎么办? 加锁(多个client抢锁,所以加分布式锁),只让一个请求到达数据库,拿到数据后,添加到缓存,然后释放锁,其它线程直接从缓存拿数据,避免大量请求同时达到数据库,给数据库造成压力。

(4).Cache-aside模型相关

缓存穿透、缓存击穿、缓存雪崩的区别 - PC君 - 博客园 (cnblogs.com)

Redis cache-aside模型研究_知难行难1985的博客-CSDN博客

2.内存溢出的情况:

列出5种就可以了

重要:IT老齐讲述的排查OOM并最终解决的方案:

【IT老齐043】IT老齐线上Java OOM排查与解决过程分享(下)_哔哩哔哩_bilibili

以及下面这个Error:

1.安全方面:

SpringSecurity 怎样阻止跨域攻击CSRF。

这篇文章写得不错:

SpringSecurity (4) CSRF 与 CSRF-TOKEN 的处理_O_o-CSDN博客

相关的响应式编程(异步编程):

一文带你彻底了解Java异步编程 - 知乎 (zhihu.com)

1.SpringCloud版本, SpringBoot版本, RabbitMQ版本

Hoxton -> 2.2.x
Greenwich -> 2.1.x
Finchley -> 2.0.x
Edgware -> 1.5.x
Dalston -> 1.5.x

<spring.boot.version>2.4.8</spring.boot.version>

<nacos.version>2.0.2</nacos.version>

<spring.cloud.version>2020.0.4</spring.cloud.version>

<spring-cloud-alibaba-dependencies.version>2021.1</spring-cloud-alibaba-dependencies.version>

MongoDB 4.0  1个primary,2个secondary

Redis 4.0  内存8G, 单机

RabbitMQ 3.7.17 单机(如果要用集群的话,集群分为普通集群和镜像集群)

Kafka:2.13

mysql版本:MySQL 5.6.51 ,华为云数据库RDS

k8s集群版本 : v1.19

docker版本:18.09,客户端和服务端都是18.09

2.React 生命周期,高阶组件, js原型,继承

JS原型:https://segmentfault.com/a/1190000021232132

深入理解javascript原型和闭包(完结) - 王福朋 - 博客园https://www.liaoxuefeng.com/wiki/1022910821149312/1023022043494624深入理解javascript原型和闭包(完结) - 王福朋 - 博客园

继承的几种方式:

  1. Object.create(): var s = Object.create(Student);
  2. 构造函数

三个属性:__proto__、prototype、 constructor

  1. __proto__、 constructor属性是对象所独有的;
  2. prototype属性是函数独有的;
  3. js中函数也是对象的一种,那么函数同样也有属性__proto__、 constructor;

也就是说构造函数比普通对象多了一个属性prototype

3.微服务监控 SpringBoot Admin,还有呢?

除了springboot admin,  还有普罗米修斯等,它们都是基于actuator这个信息采集工具,actuator被集成在微服务中。

Spring Actuator 与 Spring boot Admin_Jack汪喆的技术分享栏-CSDN博客_actuator和admin

4.微服务链路监控是什么来 slueth?

现在使用skywalking

4.IO相关:

字节流和字符流的区别,字节流没有使用缓冲区,所以直接操作文件
https://blog.csdn.net/chenkaibsw/article/details/81606722

BIO,NIO, AIO,响应式编程等概念:

深度长文:从bio到nio到aio,再到响应式编程_小姐姐味道的博客-CSDN博客

一文带你彻底了解Java异步编程 - 知乎 (zhihu.com)

Netty默认线程数是2*N+1:

Netty肯定是IO密集型,CPU密集型的话,线程数是N+1

netty源码分析之nio线程个数以及线程命名规则_小潭渔的博客-CSDN博客_netty 线程数量

重要:里面有响应式编程内容:

一文带你彻底了解Java异步编程 - 知乎 (zhihu.com)

同步、异步:

阻塞、非阻塞是指线程是否挂起,同步异步是指线程是否亲自去读写数据(用户空间和内核空间之间),同步是需要线程亲自去读写数据,异步的话不需要,衣来伸手饭来张口。

下面这篇文章解释得非常好。

为什么nio是同步非阻塞的 - CSDN

备份:为什么NIO被称为同步非阻塞_知难行难1985的博客-CSDN博客

5.索引失效的8种情况:

重要----阿里慢sql挑战大赛案例讲解---IT老齐:

【IT老齐044】190毫秒干到2毫秒!?2017阿里云SQL优化挑战赛实战分享_哔哩哔哩_bilibili

6.布隆过滤器:

7.SpringMVC 拦截器 与filter的区别

8.服务熔断与降级:

https://blog.csdn.net/wdquan19851029/article/details/121075166

9.动态规划算法: 10级台阶

10.Dubbo netty模拟:

11.系统处理的最大并发量问题。

怎样回答这个问题?每个Tomcat最大并发量应该是1000ps,集群可以解决大并发问题。

12.Ribbon的负载均衡策略及原理

https://blog.csdn.net/u013099854/article/details/104005947

13.分布式事务:

https://blog.csdn.net/qq_35190492/article/details/108000380

面试官问我知道的分布式事务,我一口气说了六种_敖丙-CSDN博客

sharding-jdbc+seata实现分库分表,多数据源整合和seata分布式事务_HTslide的博客-CSDN博客

14.Tomcat的性能与最大并发量

15.谈谈服务雪崩、降级与熔断

https://blog.csdn.net/fujiandiyi008/article/details/88015295

16.WebSocket实现原理

17. mybatis 从头到尾

18. hibernate 从头到尾

19. sharding-jdbc 事务问题

sharding-jdbc+seata实现分库分表,多数据源整合和seata分布式事务_HTslide的博客-CSDN博客
面试官问我知道的分布式事务,我一口气说了六种_敖丙-CSDN博客

20. java 8 与 java 11的区别:

JAVA 8与JAVA 11到底该怎么选?_A16670113506的博客-CSDN博客_java11和java82

21.mybatis mapper是怎样实例化的?

还是要熟悉mybatis原理才行。

Mybatis四大对象,说一下对它们的理解

关于mybatis的一个疑惑(Mapper接口如何实例化的)_tanqidong1992的专栏-CSDN博客_ibatis mapper如何实例化

JDBC:深入理解PreparedStatement和Statement_Marvel__Dead 胡艺宝的博客-CSDN博客_jdbc preparedstatement Mybatis源码分析第一讲之Mybatis概述 - 田俊哲的博客 | Shmilyz Blog

Tags - 田俊哲的博客 | Shmilyz Blog

[转]Java 动态代理机制分析及扩展_dgt21030的博客-CSDN博客

22.SpringCloud微服务治理框架的各种组件,相同功能组件的比较与优缺点

微服务方面还是要仔细看的。

23.React Route中的switch 作用是什么?

(1).有<Switch>标签,则其中的<Route>在路径相同的情况下,只匹配第一个,这个可以避免重复匹配;

(2).无<Switch>标签,则其中的<Route>在路径相同的情况下全都会匹配。更严重的是,还会匹配上级路径的

结论:为了更好地匹配规则,轻易不要舍弃<Switch>。

react-router中,<switch>标签存在意义说明 - 简书

24.怎样设计一个高并发系统?

mysql每秒支持多少并发_如何设计一个高并发系统?_weixin_39996035的博客-CSDN博客

25.Springcloud gateway配置与使用

Spring cloud gateway 详解和配置使用(文章较长)_荡漾-CSDN博客

26. 微服务划分-DDD领域驱动---重要

微服务拆分_wdquan19851029的专栏-CSDN博客

27. CAS是什么? 它的缺点是什么?

CAS的缺点及解决 - 知乎

28. Spring声明式事务@Transaction

有没有回滚失败的情况?其实是有的,因为默认这是回滚RuntimeException及其子类,如果不是RuntimeException, 则不会回滚,例如ParseException,该怎么办呢? 可以设置参数rollback = Exception.class让其回滚所有异常。

29.持续集成,持续交付,持续部署这些概念很重要:

持续集成、持续交付、持续部署_purpose的博客-CSDN博客_持续集成和持续交付

持续集成、持续交付、持续部署(CI/CD)简介_yuanjunliang的博客-CSDN博客_持续交付

30.java 异常体系:

都是继承于throwable类,分为Error和Exception, 其中Error是不能捕获的,Exception是可以捕获的,但是Exception中的runtimeException及其子类是不需要捕获的(例如nullpointerException, 数组越界等), 其它种类的比如IOException是必须捕获的。

31.算法

1.八大排序算法,及其变种:

除了要掌握基本算法,还要掌握其变种,例如一万数据的数组,怎样最快获取它的最小的100个,采用哪种算法?冒泡或者快排,堆排序还是其它?

2.分布式系统中生成唯一自增ID的雪花算法

3.Redis缓存删除算法: 例如LRU, LFU算法

32.mysql, mongodb, redis等数据库的区别:

33.IAAS, PAAS, SAAS这些概念也要掌握

一张图看懂IaaS, PaaS和SaaS的区别_IT精选-CSDN博客_iaas paas saas

34.Spring容器初始化,以及在此过程中,怎样解决bean生产过程中的循环依赖

35. RabbitMQ, Kafka

RabbitMQ的队列怎样持久化等等,通过页面配置,在Springboot中怎样配置??

RabbitMQ介绍_游王子的博客-CSDN博客_rabbitmq介绍

这几篇文章不错 ,详细讲述了在springboot中的使用:

rabbitMQ 可靠性消息投递_angen2018的博客-CSDN博客_rabbitmq可靠性投递解决方案

备份:rabbitMQ 可靠性消息投递_知难行难1985的博客-CSDN博客

rabbitmq ACK消费者确认机制_angen2018的博客-CSDN博客_rabbitmq消费者确认机制

备份: rabbitmq ACK消费者确认机制_知难行难1985的博客-CSDN博客

RabbitMQ崩溃恢复后消息的恢复:

RabbitMQ 的消息持久化与 Spring AMQP 的实现详解 - java框架 - 谷谷点程序 (3qphp.com)

备份:RabbitMQ 的消息持久化与 Spring AMQP 的实现详解_知难行难1985的博客-CSDN博客

RabbitMQ私信队列研究:

RabbitMQ的死信队列详解_知难行难1985的博客-CSDN博客

RabbitMQ 消息有效期问题_天怎么不会塌的博客-CSDN博客_rabbitmq消息过期无效

36.Springboot 事务使用以及失效情况(重要):

SpringBoot事务隔离等级和传播行为 - zincredible - 博客园 (cnblogs.com)

SpringBoot使用@Transactional_flyaway86的博客-CSDN博客_springboot transactional

事务无法回滚的两种情况:

39.微服务扩展AKF理论:

与DDD领域驱动开发有什么区别?

分布式AKF拆分原则 - -零 - 博客园 (cnblogs.com)

40.关于hash哈希算法:

很多框架中,包括分布式和非分布式框架,都要用到哈希取模运算,例如nginx,kafka等,所以有必要好好研究一下hash算法。

41.函数式编程:

Lambda表达式与函数接口

Java函数式编程_打工人你好的博客-CSDN博客_java函数式编程

Java中的lambda每次执行都会创建一个新对象吗 - 云+社区 - 腾讯云 (tencent.com)

Java中的函数式编程_java_脚本之家 (jb51.net)

42.内存泄漏:

1.InputStream, OutputStream等各种输入输出流未关闭导致的内存泄漏

2.ThreadLocal set之后,线程执行完之前,必须要将set的值remove掉,不然也会内存泄漏,虽然ThreadLocal里面用的软引用。

43.线程:

线程池自定义线程名称:

(1条消息) java自定义线程池名称_zquwei的博客-CSDN博客_java 线程池命名

重要: 

Java中各种死锁详细讲述及其解决方案(图文并茂,浅显易懂)_李子捌的博客-CSDN博客_java 死锁

Java 线程死锁及如何避免死锁介绍_阿布~的博客-CSDN博客_java线程死锁

Java多线程 开发中避免死锁的八种方法_java持续实践的博客-CSDN博客_实际开发中如何避免死锁

44. 动态代理实现方式

动态代理proxy与CGLib的区别_茅坤宝骏氹的博客-CSDN博客_proxy和cglib

45.多线程之间是如何通信的?

46.AQS

47.多线程之间是如何通信的?

48. CAP与BASE理论

cap理论与base理论_月上柳梢头。的博客-CSDN博客_cap理论

[分布式]:分布式系统的CAP理论_Franco蜡笔小强的博客-CSDN博客_分布式cap

49.响应式编程 到 WebFlux:

WebFlux 详解_程序猿秃头之路的博客-CSDN博客_webflux

50.K8s面试题:

K8S面试题总结_孤独天狼的博客-CSDN博客_k8s面试题

java面试知识点总结相关推荐

  1. Java 面试知识点解析(七)——Web篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  2. Java 面试知识点解析(六)——数据库篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  3. Java 面试知识点解析(五)——网络协议篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  4. Java 面试知识点解析(三)——JVM篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  5. Java 面试知识点解析(二)——高并发编程篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  6. Java面试知识点:网络编程

    问题:Java面试知识点:网络编程 答案: 1.InetAddress 代码如下: package com.xy;import java.net.InetAddress; import java.ne ...

  7. Java面试知识点:多线程

    问题:Java面试知识点:多线程 答案: 1.线程 代码如下: package com.xy;/*** @ProjectName: day01* @Package: com.xy* @ClassNam ...

  8. Java面试知识点:File、IO流

    问题:Java面试知识点:File.IO流 答案: 1.File listFiles方法注意事项: • 当调用者不存在时,返回null • 当调用者是一个文件时,返回null • 当调用者是一个空文件 ...

  9. Java面试知识点:红黑树、Stream流

    问题:Java面试知识点:红黑树.Stream流 答案: 1.红黑树 红黑树   • 平衡二叉B树   • 每一个节点可以是红或者黑   • 红黑树不是高度平衡的,它的平衡是通过"自己的红黑 ...

  10. Java面试知识点:集合、Set、泛型、HashSet、HashMap

    Java面试知识点:集合.Set.泛型.HashSet.HashMap 答案: 1.集合  集合和数组的对比小结      1,数组的长度是不可变的,集合的长度是可变的.      2 ,数组可以存 ...

最新文章

  1. getFields()和getDeclaredFields的区别
  2. mysql表自关联_数据库之自关联
  3. 经验分享 | 通过adbd配置漏洞在安卓设备上提升权限
  4. bootstrap 隐藏元素_Bootstrap中折叠面板的样式内容
  5. .NET建议使用的大小写命名原则
  6. leetcode696. 计数二进制子串
  7. 为什么python打不开_python文件打不开如何解决
  8. php防伪溯源x系统_区块链溯源防伪追溯系统开发解决方案
  9. Wootrade宣布加入SushiSwa旗下Mirin协议和子池计划
  10. touch无法创建文件或者文档
  11. 转载:什么是良好的Verilog代码风格?(作者KellenWang)
  12. python_列表_常用操作
  13. html水平制表和垂直制表,将水平制表符转换为垂直制表符(仅限HTML和CSS,无js)
  14. cocos2d-x2.2.5走四棋儿源代码“开源”
  15. java 利用 ffmpeg 实现音频格式转码
  16. 计算机软件税负率,2015最新增值税税负对照表
  17. 读懂职场则规潜 潜伏者的上位秘诀
  18. 拥有超过1200个PNG格式图标的免费图标集 - Cosmo Mini
  19. 音频文件(.wav)解析读取
  20. 翻译:Pong Game Tutorial

热门文章

  1. 怎么制作升温曲线图_如何在EXcel做体温曲线图
  2. 为什么线程崩溃不会导致 JVM 崩溃
  3. Live Streaming
  4. 莫比乌斯反演 平衡规划 双端栈 双端队列 等价类等
  5. linux下raid0创建教程,在 Linux 下使用 RAID(二):使用 mdadm 工具创建软件 RAID 0 (条带化)...
  6. 设置JTree树形结构文字的颜色以及文字背景颜色的方法_-Chaz-_新浪博客
  7. python day2
  8. MySQL大略学习(二) 表格的操作 增删查改
  9. 如何搭建Flash P2P网络直播点播平台
  10. php圆形设计图,教程|PHP如何制作圆形用户头像?