Java学习以及复习面试之路(待更新)

基础篇

01 面向对象

什么是面向对象

平台无关性

值传递

封装、继承、多态

 

02 Java 基础知识

基本数据类型

自动拆装箱

String

集合类

枚举

IO

扫描二维码关注公众号,回复: 5624018 查看本文章

反射

动态代理

序列化

注解

JMS

JMX

泛型

单元测试

正则表达式

常用的 Java 工具库

 API & SPI

异常

 时间处理

编码方式

语法糖

 

03 阅读源代码

String

Integer

Long

Enum

BigDecimal

ThreadLocal

ClassLoader & URLClassLoader

ArrayList & LinkedList、

HashMap & LinkedHashMap & TreeMap & CouncurrentHashMap

HashSet & LinkedHashSet & TreeSet

 

04 Java 并发编程

并发与并行

什么是线程,与进程的区别

线程池

线程安全

死锁

synchronized

volatile

sleep 和 wait

wait 和 notify

notify 和 notifyAll

ThreadLocal

写一个死锁的程序

写代码来解决生产者消费者问题

并方包

 

底层篇

01 JVM

JVM 内存结构

Java 内存模型

垃圾回收

JVM 参数及调优

Java 对象模型

HotSpot

虚拟机性能监控与故障处理工具

 

02 类加载机制

classLoader

类加载过程

双亲委派(破坏双亲委派)

模块化(jboss modules、osgi、jigsaw)

 

03 编译与反编译

什么是编译(前端编译、后端编译)

什么是反编译

JIT

JIT 优化(逃逸分析、栈上分配、标量替换、锁优化)

编译工具:javac

反编译工具:javap 、jad 、CRF

 

进阶篇

01 Java底层知识

字节码、class 文件格式

CPU 缓存,L1,L2,L3 和伪共享

尾递归

位运算

用位运算实现加、减、乘、除、取余

 

02 设计模式

设计模式的六大原则

了解 23 种设计模式

会使用常用设计模式

不用 synchronized 和 lock,实现线程安全的单例模式

实现 AOP

实现 IOC

nio 和 reactor 设计模式

 

03 网络编程知识

tcp、udp、http、https 等常用协议

http/1.0 http/1.1 http/2 之前的区别

 http/3

Java RMI,Socket,HttpClient

cookie 与 session

用 Java 写一个简单的静态文件的 HTTP 服务器

了解 nginx 和 apache 服务器的特性并搭建一个对应的服务器

用 Java 实现 FTP、SMTP 协议

进程间通讯的方式

什么是 CDN?如果实现?

DNS

反向代理

04 框架知识

Servlet

Hibernate

Spring 

Spring MVC

Spring Boot

Spring Security

Spring Cloud

05 应用服务器知识

JBoss

tomcat

jetty

Weblogic

06 工具

git & svn

maven & gradle

Intellij IDEA

常用插件:Maven Helper 、FindBugs-IDEA、阿里巴巴代码规约检测、GsonFormatLombok plugin、.ignore、Mybatis plugin

 

高级篇

01 新技术

Java 8

Java 9

Java 10

Java 11

Spring 5

Spring Boot 2.0

HTTP/2

HTTP/3    

 

02 性能优化

使用单例

使用 Future 模式

使用线程池

选择就绪

减少上下文切换

减少锁粒度

数据压缩

结果缓存

 

03 线上问题分析

dump 获取

dump 分析

dump 分析及获取工具

自己编写各种 outofmemory,stackoverflow 程序

Arthas

常见问题解决思路

 

04 编译原理知识

编译与反编译

Java 代码的编译与反编译

Java 的反编译工具

即时编译器

编译过程

 

05 操作系统知识

Linux 的常用命令

进程间通信

进程同步

缓冲区溢出

分段和分页

虚拟内存与主存

虚拟内存管理

换页算法

06 数据库知识

MySQL 执行引擎

MySQL 执行计划

索引

SQL 优化

数据库事务和隔离级别

数据库锁

连接

数据库主备搭建

binlog

redolog

内存数据库

分库分表

读写分离

常用的 NoSql 数据库

分别使用数据库锁、NoSql 实现分布式锁

性能调优

数据库连接池

 

07 数据结构与算法知识 

简单的数据结构

排序算法

两个栈实现队列,和两个队列实现栈

深度优先和广度优先搜索

全排列、贪心算法、KMP 算法、hash 算法

海量数据处理

 

08 大数据知识

Zookeeper

Solr,Lucene,ElasticSearch

Storm,流式计算,了解 Spark,S4

Hadoop,离线计算

分布式日志收集 flume,kafka,logstash

数据挖掘,mahout

09 网络安全知识

XSS

CSRF

注入攻击

文件上传漏洞

加密与解密

DDOS攻击

SSL、TLS,HTTPS

用 openssl 签一个证书部署到 apache 或 nginx

 

架构篇

01 分布式

分布式事务

Dubbo

分布式数据库

分布式文件系统

分布式缓存

限流降级

算法

 

02 微服务

ServiceMesh

Docker & Kubernets

Spring Boot

Spring Cloud

 

03 高并发

分库分表

CDN 技术

消息队列

 

04 监控

监控什么

监控手段

监控数据采集

Dapper

 

 

05 负载均衡

tomcat 负载均衡

Nginx 负载均衡

四层负载均衡

七层负载均衡

 

06 DNS

DNS 原理

DNS 的设计

07 CDN

数据一致性

 

推荐书籍

《深入理解 Java 虚拟机》 

《Effective Java》 

《深入分析 Java Web 技术内幕》 

《大型网站技术架构》 

《代码整洁之道》 

《架构整洁之道》 

《Head First 设计模式》 

《maven 实战》 

《区块链原理、设计与应用》 

《Java 并发编程实战》 

《鸟哥的 Linux 私房菜》 

《从Paxos 到 Zookeeper》 

《架构即未来》

猜你喜欢

转载自blog.csdn.net/weixin_42236404/article/details/88566518
今日推荐