JAVA技术F4

JAVA技术F4

本文描述JAVA 从基础 -> web -> 中间件 -> bigdata:


基础篇

  • 1 算法:

    • 1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序
    • 1.2 二叉查找树、红黑树、B树、B+树
  • 2 基本语法及原理:

    • 2.1 字符串常量池的迁移
    • 2.2 字符串KMP算法
    • 2.3 equals和hashcode
    • 2.4 泛型、异常、反射
    • 2.5 string的hash算法
    • 2.6 hash冲突的解决办法:开放定址法和拉链法
    • 2.7 foreach循环的原理
    • 2.8 static、final、transient等关键字的作用
    • 2.9 volatile关键字的底层实现原理
    • 2.10 Collections.sort方法使用的是哪种排序方法
    • 2.11 Future接口,常见的线程池中的FutureTask实现等
  • 3 设计模式

    • 3.1 单例模式
    • 3.2 工厂模式
    • 3.3 装饰者模式
    • 3.4 观察者设计模式
    • 3.5 ThreadLocal设计模式
  • 4 正则表达式
    • 4.1 捕获组和非捕获组
    • 4.2 贪婪,勉强,独占模式
  • 5 java内存模型以及垃圾回收算法
    • 5.1 类加载机制,也就是双亲委派模型
    • 5.2 java内存分配模型(默认HotSpot)线程共享的:堆区、永久区 线程独享的:虚拟机栈、本地方法栈、程序计数器
    • 5.3 内存分配机制:年轻代(Eden区、两个Survivor区)、年老代、永久代以及他们的分配过程
    • 5.4 强引用、软引用、弱引用、虚引用与GC
    • 5.5 happens-before规则
    • 5.6 指令重排序、内存栅栏
    • 5.7 Java 8的内存分代改进
    • 5.8 常用垃圾收集器算法:
      • 新生代:Serial收集器、ParNew收集器、Parallel Scavenge 收集器
      • 老年代:Serial Old收集器、Parallel Old收集器、CMS(Concurrent Mark Sweep)收集器、 G1 收集器
    • 5.9 常用gc的参数:-Xmn、-Xms、-Xmx、-XX:MaxPermSize、-XX:SurvivorRatio、-XX:-PrintGCDetails
    • 5.10 常用工具: jps、jstat、jmap、jstack、图形工具jConsole、Visual VM、MAT
  • 6 锁以及并发容器的源码
    • 6.1 synchronized和volatile理解
    • 6.2 Unsafe类的原理,使用它来实现CAS。因此诞生了AtomicInteger系列等
    • 6.3 CAS可能产生的ABA问题的解决,如加入修改次数、版本号
    • 6.4 同步器AQS的实现原理
    • 6.5 独占锁、共享锁;可重入的独占锁ReentrantLock、共享锁 实现原理
    • 6.6 公平锁和非公平锁
    • 6.7 读写锁 ReentrantReadWriteLock的实现原理
    • 6.8 LockSupport工具
    • 6.9 Condition接口及其实现原理
    • 6.10 HashMap、HashSet、ArrayList、LinkedList、HashTable、ConcurrentHashMap、TreeMap的实现原理
    • 6.11 HashMap的并发问题
    • 6.12 ConcurrentLinkedQueue的实现原理
    • 6.13 Fork/Join框架
    • 6.14 CountDownLatch和CyclicBarrier
  • 7 线程池源码
    • 7.1 内部执行原理
    • 7.2 各种线程池的区别

WEB:

  • 1 SpringMVC的架构设计
  • 2 SpringAOP源码
  • 3 Spring事务体系源码以及分布式事务Jotm Atomikos源码实现
  • 4 数据库隔离级别
  • 5 数据库 sql
  • 6 ORM框架: mybatis、Hibernate
  • 7 SpringSecurity、shiro、SSO(单点登录)
  • 8 日志
  • 9 datasource
  • 10 HTTPS的实现原理

中间件:

  • 1 ZooKeeper源码
  • 2 序列化和反序列化框架Avro、Thrift、Protobuf、Protostuff
  • 3 RPC框架dubbo源码
  • 4 NIO模块以及对应的Netty和Mina、thrift源码
  • 5 消息队列kafka、MetaQ(后来版本RocketMQ)、Notify、Hermes
  • 6 数据库的分库分表mycat
  • 7 NoSql数据库mongodb
    • 7.1 mongodb 原理
    • 7.2 mongodb 索引
  • 8 分布式缓存 memcached redis
  • 9 web服务器tomcat、ngnix的设计原理
  • 10 ELK日志实时处理查询系统
  • 11 RabbitMQ
  • 12 扩展
  • -

BIG DATA:

  • 1 Hadoop
  • 2 MapReduce
  • 3 HDFS
  • 4 YARN、Mesos 资源调度
  • 5 oozie
  • 6 Hive
  • 7 Hbase
  • 8 Spark

你可能感兴趣的:(JAVA)