为了进阿里需要做哪些准备(最强java八股文和经验)

大家好,我是一名即将到40岁的程序员,就职过多家互联网大厂,忙于工作和家庭,也没有做过什么文档性总结,今天的这篇文章,主要是为了写一下当年为了进阿里背过的面试题和一些自己的经验,供大家参考。

任何技术相关问题,欢迎加微信沟通 ~

先放个目录,大家根据目录也审视一下自己

上篇

•      一、基础篇

o     网络基础

   TCP三次握手

   1、OSI与TCP/IP 模型

   2、常见网络服务分层

   3、TCP与UDP区别及场景

   4、TCP滑动窗口,拥塞控制

   5、TCP粘包原因和解决方法

   6、TCP、UDP报文格式

   HTTP协议

   1、HTTP协议1.0_1.1_2.0

   2、HTTP与HTTPS之间的区别

   3、Get和Post请求区别

   4、HTTP常见响应状态码

   5、重定向和转发区别

   6、Cookie和Session区别。

   浏览器输入URL过程

o     操作系统基础

   进程和线程的区别

   1、进程间通信方式IPC

   2、用户态和核心态

   3、操作系统的进程空间

   操作系统内存管理

   1、页面置换算法FIFO、LRU

   2、死锁条件、解决方式。

o     Java基础

   面向对象三大特性

   1、Java与C++区别

   2、多态实现原理

   3、static和final关键字

   4、抽象类和接口

   5、泛型以及泛型擦除

   6、反射原理以及使用场景

   7、Java异常体系

   数据结构

   1、ArrayList和LinkedList

   2、List遍历快速和安全失败

   3、详细介绍HashMap

   **4、ConcurrentHashMap **

   5、序列化和反序列化

   6、String

   设计模式与原则

   1、单例模式

   2、工厂模式

   3、抽象工厂模式

o     面试题

   构造方法

   初始化块

   This

   重写和重载的区别

   Object类方法

   基本数据类型和包装类

•      二、JVM篇

o     JVM内存划分

   1、JVM运行时数据区域

   2、堆内存分配策略

   3、创建一个对象的步骤

   4、对象引用

o     JVM类加载过程

   1、双亲委派机制

   2、tomcat的类加载机制

o     JVM垃圾回收

   1、存活算法和两次标记过程

   2、垃圾回收算法

   MinorGC、MajorGC、FullGC

   3、垃圾收集器

   4、配置垃圾收集器

   4、JVM性能调优

   5、JDK新特性

o     线上故障排查

   1、硬件故障排查

   2、报表异常 | JVM调优

   3、大屏异常 | JUC调优

   4、接口延迟 | SWAP调优

   5、内存溢出 | Cache调优

   6:CPU飙高 | 死循环

•      三、多线程篇

o     线程调度

   1、线程状态

   2、线程状态切换

   3、阻塞唤醒过程

   4、wait和sleep区别

   5、创建线程方式

o     线程池

   1、线程池构造函数

   2、线程处理任务过程:

   3、线程拒绝策略

   4、Execuors类实现线程池

   5、线程池大小设置

o     线程安全

   1、乐观锁,CAS思想

   2、synchronized底层实现

   3、ReenTrantLock底层实现

   4、公平锁和非公平锁区别

   5、使用层面锁优化

   6、系统层面锁优化

   7、ThreadLocal原理

   8、HashMap线程安全

   9、String不可变原因

o     内存模型

   1、volatile底层实现

   2、AQS思想

   3、happens-before

•      四、MySQL篇

o     WhyMysql?

   海量Aerospike

   图谱Neo4j

   文档MongoDB

   云存储

   FastDFS

o     事务

   1、事务4大特性

   2、事务隔离级别

   3、默认隔离级别-RR

   4、RR和RC使用场景

   5、行锁,表锁,意向锁

   6、MVCC多版本并发控制

o     索引

   1、Innodb和Myisam引擎

   2、哈希索引

   3、B+树索引

   4、创建索引

   5、聚簇索引和非聚簇索引

   6、最左前缀问题

o     SQL查询

   1、SQL语句的执行过程

   2、回表查询和覆盖索引

   3、Explain及优化

   4、JOIN查询

o     集群

   1、主从复制过程

   2、数据一致性问题

   3、集群架构

   4、故障转移和恢复

o     面试题

   分库分表

   如何进行分库分表

   如何将老数据进行迁移

   系统性能的评估及扩容

   如何生成自增的id主键

o     线上故障及优化

   更新失败 | 主从同步延时

   应用崩溃 | 分库分表优化

   查询异常 | SQL 调优

•      五、Redis篇

o     WhyRedis

   1、简单高效

   2、Memcache

   3、Tair

   4、Guava

   5、EVCache

   6、ETCD

o     Redis底层

   1、redis数据类型

   2、相关API

   3、redis底层结构

   4、Zset底层实现

o     Redis可用性

   1、redis持久化

   2、redis事务

   3、redis失效策略

   4、redis读写模式

   5、多级缓存

o     Redis七大经典问题

   1、缓存雪崩

   2、缓存穿透

   3、缓存击穿

   4、数据不一致

   5、数据并发竞争

   6、热点key问题

   7、BigKey问题

o     Redis分区容错

   1、redis数据分区

   2、主从模式=简单

   3、哨兵模式=读多

   4、集群模式=写多

   5、分布式锁

   6、redis心跳检测

o     Redis实战

   1、Redis优化

   2、Redis热升级

•      六、Kafka篇

o     Why kafka

o     What Kafka

o     How Kafka

o     生产消费基本流程

o     一致性

o     可用性

o     面试题

   线上问题rebalance

   ZooKeeper 的作用

   Replica副本的作用

   为什么不支持读写分离?

   如何防止重复消费

   如何保证数据不会丢失

   如何保证顺序消费

   【线上】如何解决积压消费

   如何避免消息积压

   如何设计消息队列

•      七、Spring篇

o     设计思想&Beans

   1、IOC 控制反转

   2、AOP 动态代理

   3、Bean生命周期

   4、Bean作用域

   5、循环依赖

o     Spring注解

   1、@SpringBoot

   2、@SpringMVC

   3、@SpringMybatis

   4、@Transactional

o     Spring源码阅读

   1、Spring中的设计模式

•      八、SpringCloud篇

o     Why SpringCloud

   Spring Boot

   GateWay / Zuul

   Eureka / Zookeeper

   Feign / Ribbon

   Hystrix / Sentinel

   Config / Nacos

   Bus / Stream

   Sleuth / Zipkin

   安全认证

   灰度发布

   多版本隔离

   各组件调优

•      九、分布式篇

o     发展历程

o     CAP

o     一致性

   XA方案

   Paxos算法

   ZAB算法

   Raft算法

   数据库和Redis的一致性

o     可用性

   心跳检测

   多机房实时热备

o     分区容错性

   日志复制

   主备(Master-Slave)

   互备(Active-Active)

   集群(Cluster)模式

o     分布式事务

   XA方案

   TCC方案

   Saga方案

   本地消息表(eBay)

   MQ最终一致性

   最大努力通知方案(订单 -> 积分)

o     面试题

   分布式Session实现方案

下篇

•      一、ES篇

o     1、概述

   特点

   功能

   场景

   竞品分析

   对比

o     2、基本概念

   IK分词器

   索引(类数据库)

   映射(类表设计)

   文档(数据)

o     3、高级特性

   映射高级

   地理坐标点数据类型

   动态映射

   DSL高级

   聚合分析

   智能搜索

o     4、实战

   写优化

   读优化

   零停机索引重建方案

   DeepPaging性能解决方案

•      二:Docker&K8S篇

o     Why Docker

o     核心概念

o     基本操作

o     实战

•      三、Netty篇

o     核心组件

   1、整体结构

   2、逻辑架构

o     网络传输

   1、五种IO模型的区别

   2、Reactor多线程模型

   3、拆包粘包问题

   4、自定义协议

   5、WriteAndFlush

o     内存管理

   1、堆外内存

   2、数据载体ByteBuf

   3、内存分配jemalloc

   4、jemalloc 架构

   5、内存池设计(待补充)

   6、Recycle对象池(待补充)

   7、零拷贝技术

o     高性能数据结构

   1、FastThreadLocal

   2、HashedTimerWheel

   3、MpscQueue

   4、select、poll、epoll的区别

•      四、LEETCODE

o     【Python语法】

o     【背包模板】

o     【回溯模板】

o     【并查集模板】

o     【拓扑排序模板】

o     【单调栈模板】

o     【二分模板】

o     【动态规划模板】

   「单串问题」

   「单串加状态问题」

   「经典双串LCS问题」

   「区间动态规划」

   「区间分治动态规划」

o     【滑动窗口】

o     【前缀和】

o     【双指针】

o     【深度优先】

o     【广度优先】

o     【图论】

•      五、实战算法篇

o     1、URL黑名单(布隆过滤器)

o     2、词频统计(分文件)

o     3、未出现的数(bit数组)

o     4、重复URL(分机器)

o     5、TOPK搜索(小根堆)

o     6、中位数(单向二分查找)

o     7、短域名系统(缓存)

o     8、海量评论入库(消息队列)

o     9、在线/并发用户数(Redis)

o     10、热门字符串(前缀树)

o     11、红包算法

o     11、手写快排

o     12、手写归并

o     13、手写堆排

o     14、手写单例

o     15、手写LRUcache

o     16、手写线程池

o     17、手写消费者生产者模式

o     18、手写阻塞队列

o     19、手写多线程交替打印ABC

o     20、交替打印FooBar

•      六、个人项目

o     一、一站到底

   1、如何设计排行榜

   性能优化过程

   方案优化过程

   方案1:每日一个滚动榜,当日汇聚(费时间)

   方案2:全局N个滚动榜同时写(费空间)

   方案3:实时更新,常数次写操作

   2、如何解决重复答题

   3、一个题目被多个人抢答

   4、如何管理昵称重复

   5、如何管理出题定时任务

   6:如何解决客户端断连

o     二、秒杀项目

   技术选型

   方案设计

   1、如何解决超卖?

   2、如何解决重复下单?

   3、如何防刷?

   4、热key问题如何解决?

   5、应对高并发的读请求

   6、应对高并发的写请求

   7、如何保证数据一致性

   8、可靠性如何保障**

   9、秒杀系统瓶颈-日志

o     三、即时通信

   1、单聊消息可靠传输

   2、群聊消息如何保证不丢不重

   3、如何保证消息的时序性

   4:推拉结合

   5、好友推荐

o     四、智慧社区

   物联网架构

   DCM系统架构

   三要素

   云 / 边 / 端协同

   物联网平台接入

   门锁接入

   各种协议

   IOT流量洪峰

   社区直播带货

   产品的背景

   面临的挑战

   协议的比较

   整体流程

   直播流程

   播放流程

   直播高可用方案

   性能优化方案

   流量回放自动化测试

•      七、架构设计

o     1、社区系统的架构

o     2、商城系统-亿级商品如何存储

o     3、对账系统-分布式事务一致性

o     4、用户系统-多线程数据割接

o     5、秒杀系统场景设计

o     6、统计系统-海量计数

o     7、系统设计 - 微软

   1、需求收集

   2、顶层设计

   3、系统核心指标

   4、数据存储

o     7、如何设计一个微博

•      八、领域模型落地

o     1、拆分微服务

o     2、关联微服务

o     3、微服务的落地

o     4、领域模型的意义

o     5、战略建模

o     6、相关名词

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值