美文网首页
Java 后端知识点

Java 后端知识点

作者: 叫我宫城大人 | 来源:发表于2019-06-27 16:50 被阅读0次

    Java

    基本类型

    • 八大基本类型,对应数值范围
    • 浮点数丢失精度
    • Integer 缓存
    • String 内存分配

    集合

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

    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
    • 隔离级别
    • next-key lock

    数据库引擎

    • 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 后端知识点

          本文链接:https://www.haomeiwen.com/subject/vdwrcctx.html