体系化学习Java(面试专题)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: tip: 此贴为目录贴,定期更新,一起学习 Java 生态!!!toNew: 时间是最好的答案,它能解决所有问题。坚持!!!本文章旨在总结 Java 的知识生态以及帮助需要学习者和求职者,本人有5年面试官经验,资深Javaer,有技术相关问题和面试相关问题均可以留言讨论。

tip: 此贴为目录贴,定期更新
toNew: 时间是最好的答案,它能解决所有问题。坚持!!!

本文章旨在总结 Java 的知识生态以及帮助需要学习者和求职者,本人有5年面试官经验,资深Javaer,有技术相关问题和面试相关问题均可以留言讨论。

一、Java基础

1、Java 基础

1、Java基础-面向对象

2、Java 泛型机制详解

3、Java SPI 机制详解

2、集合

1、ArrayList 的底层原理 (面试常问题)

2、HashMap 的底层原理(面试常问题)

3、HashMap 是线程安全的吗?那线程安全的 Map 有哪些?(面试常问题)

4、HashMap 源码剖析

3、多线程

1、线程的4种创建方式(面试常问题)

2、sleep 和 wait 的区别(面试常问题)

4、IO

1、AIO、BIO、NIO 的区别

2、什么是用户态?什么是内核态?

3、IO 的分类

4、字节流和字符流

5、缓冲流和转换流

6、序列化

7、什么是零拷贝机制 (面试常问题)

5、反射

1、什么是反射机制?

2、java 类加载机制

3、如何通过反射获取 Java 实例?

4、反射方法的运用

5、什么是反射爆破?

6、反射的在实际项目中的运用

7、内置注解

8、什么是元注解?

9、自定义注解

6、对象拷贝

1、什么是对象拷贝(克隆技术)?

2、对象引用拷贝、浅拷贝和深拷贝

3、深拷贝的方式

7、异常

1、常见的异常有哪些?

8、网络

1、什么是三次握手和四次挥手?(面试常问题)

2、WebSocket

3、TCP 和 UDP

4、Http 和 Https

5、网络的七层协议和 OSI 四层协议

6、关于请求头、请求体、响应头和响应体的介绍

二、JUC并发编程

1、线程的4种创建方式(面试常问题)

2、sleep 和 yield 方法

3、两阶段终止模式(Two-Phase Termination Patter)模式

4、打断 park 线程

5、如何理解并使用 park 与 unpark

6、线程八锁

7、synchronized 的底层原理(面试常问题)

8、无锁并发 CAS

9、保护性暂停模式 Guarded Suspension

10、死锁 、活锁、饥饿

11、ReentrantLock 的原理和应用

12、同步模式之顺序控制线程执行

13、同步模式之犹豫模式Balking

14、happens-before

15、线程池的使用(面试常问题)

16、线程池的内存溢出问题

17、disruptor

18、guava

19、volatile 之变量可见性和指令重排

20、final 详解

21、ThreadLocal 的原理和应用

三、Spring大家族

  1. SpringIOC源码解读

  2. Spring如何通过三级缓存解决循环依赖问题的(面试常问题)

  3. 谈谈对IOC的理解(面试常问题)

四、Mybatis

1、 Mybatis 的基础应用

2、Mybatis-Plus 的基础应用

3、Mybatis 的整体框架和源码分包介绍

4、Mybatis 的四大对象

5、Mybatis 的缓存设计

6、Mybatis 映射器 Mapper

7、Mybatis 的 SqlSession

五、数据库

1、Mysql

1、Mysql 测引擎 InnoDB、MyISAM

2、Mysql 事务和锁

3、Mysql MVCC

4、Mysql SQL 执行过程分析

5、Mysql 慢 SQL 优化

6、Mysql 哪些情况索引会失效

7、Mysql 读写分离

8、Mysql 性能优化

2、Clickhouse

1、Clickhouse 的基本信息以及 Clickhouse 的应用场景

2、Clickhouse 安装配置

3、Clickhouse 投影

4、Clickhouse 物化视图

5、Clickhouse 性能优化

6、Clickhouse 在亿级数据下的表现

3、Influxdb

六、中间件

1、Kafka

1、Kafka 的基本信息以及 Kafka 的应用场景

2、Kafka 生产者与消费者

3、Kafka 分区 Partition

4、Kafka 的性能测试

5、Kafka 如何保证消息的顺序性

6、如何排查 Kafka 积压情况

7、Kafka Streams

8、Kafka 重平衡

9、Kafka 运维参数调优

2、Redis

1、Redis 的基本信息以及 Redis 的应用场景

2、Redis 的基础数据结构、常用命令和配置参数

3、Redis 的缓存、消息队列、计数器应用

4、Redis 持久化 RDB

5、Redis 持久化 AOF

6、Redis 复制

7、Redis 集群

8、Redis 哨兵模式

9、Redis 面试相关问题

10、Redis 之手写一个缓存

11、Redis 之秒杀实现

12、Redis 穿击, 穿透, 雪崩, 污染

3、Zookeeper

4、ELK

5、Nginx

1、为什么Nginx性能这么高

2、Nginx 正向代理和反向代理

3、解读 Nginx 配置

4、Nginx 限流

5、Nginx 负载均衡

6、Nginx 实战搭建Web服务-部署 Vue 的项目

6、Netty

七、JVM

1、JVM 内存模型

2、JVM 垃圾回收算法

3、JVM 垃圾收集器

4、JVM 三色标记算法

5、JVM 参数介绍

6、JVM 性能调优

7、什么是内存溢出

8、什么是内存泄露

9、如何定位生产内存问题?

八、JMM

九、分布式理论

1、分布式理论-CAP

2、分布式理论 - BASE

3、分布式事务 2PC

4、分布式事务 3PC

5、分布式事务 TCC

6、Paxos 算法

7、Raft 算法

十、设计模式

1.6大设计规则-迪米特法则

2.6大设计原则-里氏替换原则

3.6大设计规则-开闭原则

4.6大设计规则-单一职责原则

5.6大设计规则-依赖倒置原则

6.6大设计规则-接口隔离原则

7、创建型模式-单例模式

8、创建型模式-原型模式

9、创建型模式-工厂模式

10、创建型模式-抽象工厂

11、创建型模式-建造者模式

12、结构型模式-代理模式

13、结构型模式-适配器模式

14、结构型模式-桥接模式

15、结构型模式-装饰模式

16、结构型模式-外观模式

17、结构型模式-享元模式

18、结构型模式-组合模式

19、行为型模式-模板方法模式

20、行为型模式-策略模式

21、行为型模式-命令模式

22、行为型模式-责任链模式

23、行为型模式-状态模式

24、行为型模式-观察者模式

25、行为型模式-中介者模式

26、行为型模式-迭代器模式

27、行为型模式-访问者模式

28、行为型模式-备忘录模式

29、行为型模式-解释器模式

十一、JDK特性

1、Java8 新特性详解

2、Java 9 新特性概述

3、Java 10 新特性概述

4、Java 11 新特性概述

5、Java 12 新特性概述

6、Java 13 新特性概述

7、Java 14 新特性概述

8、Java 15 新特性概述

9、Java 16 新特性概述

10、Java 17 新特性概述

十二、DDD领域驱动设计

十三、容器化

1、Docker

2、k8s

十四、计算机信息系统项目管理师

十五、实战-搭建前后分离架构

十六、生产总结

1、arthas

Arthas-JVM相关命令使用

Arthas-Class/Classloader相关命令使用

Arthas-monitor/watch/trace 相关命令使用

Arthas-火焰图

Arthas错误-The telnet port 3658 is used by process 5322

linux上 arthas 的安装

目录
相关文章
|
27天前
|
Java 程序员
Java社招面试中的高频考点:Callable、Future与FutureTask详解
大家好,我是小米。本文主要讲解Java多线程编程中的三个重要概念:Callable、Future和FutureTask。它们在实际开发中帮助我们更灵活、高效地处理多线程任务,尤其适合社招面试场景。通过 Callable 可以定义有返回值且可能抛出异常的任务;Future 用于获取任务结果并提供取消和检查状态的功能;FutureTask 则结合了两者的优势,既可执行任务又可获取结果。掌握这些知识不仅能提升你的编程能力,还能让你在面试中脱颖而出。文中结合实例详细介绍了这三个概念的使用方法及其区别与联系。希望对大家有所帮助!
164 60
|
3天前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
39 14
|
6天前
|
安全 Java 程序员
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
36 13
|
26天前
|
算法 安全 Java
Java线程调度揭秘:从算法到策略,让你面试稳赢!
在社招面试中,关于线程调度和同步的相关问题常常让人感到棘手。今天,我们将深入解析Java中的线程调度算法、调度策略,探讨线程调度器、时间分片的工作原理,并带你了解常见的线程同步方法。让我们一起破解这些面试难题,提升你的Java并发编程技能!
66 16
|
23天前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
55 9
|
27天前
|
Java 调度 开发者
Java线程池ExecutorService学习和使用
通过学习和使用Java中的 `ExecutorService`,可以显著提升并发编程的效率和代码的可维护性。合理配置线程池参数,结合实际应用场景,可以实现高效、可靠的并发处理。希望本文提供的示例和思路能够帮助开发者深入理解并应用 `ExecutorService`,实现更高效的并发程序。
34 10
|
28天前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
60 12
|
29天前
|
Java 数据库连接 数据库
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
81 4
|
29天前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
30 4
|
29天前
|
存储 移动开发 算法
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
52 1

热门文章

最新文章