Java 后端知识点


Java

基本类型

  • 八大基本类型,对应数值范围
  • 浮点数丢失精度

集合

  • List、Set、Map
  • 线程安全保障
  • HashTable、HashMap、ConcurrentHashMap
  • 扩容

IO

  • BIO、NIO、AIO
  • 序列化

异常

  • Throwable
  • Error、Exception
  • RuntimeException、IOException

并发

  • 多线程(线程池,合理大小)
  • ThreadLocal(WeakReference)
  • synchronized、Lock
  • volatile、CAS
  • AQS(CountDownLatch、ReentrantLock)
  • 锁优化(减小粒度、锁粗化、减小持有时间、锁分离)

代理

  • 静态代理
  • 动态代理(JDK 代理、接口代理)
  • CGLIB 代理(子类代理)

JVM

  • 内存模型(堆、方法区、Java 栈、本地方法栈、程序计数器)
  • 引用计数、GC root 搜索
  • GC 算法(标记清除、复制整理、分区)
  • 垃圾回收器(串行、并行、CMS、G1)
  • 虚拟机参数
  • ClassLoader(双亲委托,如何打破)
  • 锁类型(偏向锁、轻量级、重量级、自旋锁、锁消除)

JDK 1.8 特性

  • 接口默认方法
  • 函数式接口
  • Lambda 表达式
  • Optional
  • Streams
  • Date/Time API
  • Base64
  • 元数据区

框架组件

Spring

  • IOC、DI、AOP
  • bean 五大作用域(singleton、prototype、request、session、global-session)
  • 七大事务传播机制(required、support、not_support、mandatory、never、new、nested)
  • 相关设计模式(工厂、单例、代理、模板、观察者)
  • 事务(编程式、声明式)
  • Spring MVC 流程(dispatcher、handleMapping、handle、handleAdapter、ModelAndView、ViewResolver)
  • Spring Boot
  • Spring Cloud(Dubbo 对比)

Mybatis

  • SQL 注入

Redis

  • 数据结构(string、list、set、zset、hash)
  • 持久化(RDB、AOF)
  • 主从复制、哨兵、集群(哈希槽 16384)
  • 缓存击穿(null 缓存)、缓存雪崩(失效时间错开)
  • 基于内存、单线程
  • keys 正则 弊端(o(n) 阻塞,scan 替代)
  • 特性(事务、消息队列、Luna 脚本)
  • memcached 对比
  • Jedis、Lettuce(线程安全)
  • 淘汰策略(noeviction、allkeys-lru、volatile-lru、allkeys-random、volatile-random、volatile-ttl)

MQ

  • AMQ、RocketMQ、Kafka
  • 异步、削峰、解耦
  • 集群方案(AMQ:Zookeeper + LevelDB)
  • 重复消费(幂等性)
  • 顺序性保证

Zookeeper

  • znode 类型(持久、临时、顺序)
  • watcher 机制(单次触发)
  • 集群方案(Leader、Follower、Observer)
  • 选举流程(变更状态、发起投票、接收投票、统计投票、变更状态)
  • zxid(zk 状态)
  • Euraka 对比(CAP 理论)

Netty

  • Selector BUG
  • 零拷贝

Nginx

  • 负载均衡配置
  • 五种策略(轮询、权重、ip hash、url hash、fair)
  • keepalived 高可用

数据结构与算法

数据结构

  • 队列(FIFO)
  • 链表(单向、双向、循环)
  • 树(二叉树、B-树、B+树、红黑树)
  • 散列表
  • 跳表

排序

  • 冒泡排序
  • 快速排序
  • 插入排序

分布式

分布式 ID

  • UUID(长度过长,效率较低)
  • 单数据库自增 ID
  • 多数据库步长
  • snowflake

分布式 Session 一致性

  • ip hash 负载均衡
  • Tomcat Session 同步
  • Spring + Redis 集中管理
  • JWT Token 令牌机制(sign 散列算法签名)

分布式锁

  • 数据库唯一索引
  • Redis NX
  • ZooKeeper 节点唯一(顺序节点,参考 Curator)

分布式事务

  • XA(两阶段提交)
  • TCC(Try、Confirm、Cancel)
  • 可靠消息最终一致性(RocketMQ)

一致性 Hash

  • 哈希环
  • 分布式节点影响

数据库

MySQL 优化

  • 冗余字段
  • 读写分离
  • SQL 优化(索引、分表)
  • 查询缓存(sql_cache)
  • slow_query_log 慢查询开关
  • explain 分析

索引

  • 实现(HASH、B+树)
  • 应用(主键、唯一、单列、联合)
  • 聚簇索引、非聚簇索引
  • 覆盖索引
  • 优化策略(最左匹配、数据分散)

事务

  • ACID
  • 隔离级别

数据库引擎

  • InnoDB、MyISAM
  • 特性支持(事务、表锁、行锁、间隙锁)

其他

  • SQL 语句执行顺序(from、on、join、where、group、with、having、select、distinct、order、limit)

工具

Maven

  • clean package install
  • scope(compile、provided、runtime、system、test)
  • 环境分离(profile)
  • 依赖冲突(exclude)
  • 打包瘦身(include)

Git

  • pull fetch merge
  • revert reset rebase
  • 配置

IDEA

  • 虚拟机参数
  • 快捷键

其他

加密

  • 对称加密 AES、DES
  • 非对称加密 RSA、DSA
  • 散列算法 MD5、SHA、HMAC

设计模式

  • 单例模式(双重锁、枚举)
  • 工厂模式
  • 观察者模式

网络 & 操作系统

  • 线程与进程
  • Linux 常用命令
  • OSI 七层模型(应用、表示、会话、传输、网络、数据链路、物理)
  • TCP(三次握手,四次挥手)、UDP
  • XSS、CRSF、CORS
  • HTTP 状态码(5xx 解决方案)

开放式问答

  • 虚拟机调优(Xms Xmx Xmn、垃圾回收器、GC 日志)
  • 设计秒杀系统(集群高可用、微服务、读写分离、消息缓存)
  • 设计分布式缓存(淘汰策略 FIFO LRU LFU)
  • 超大文件排序(大文件分片排序,遍历分片合并)

你可能感兴趣的:(Java 后端知识点)