google 10年 java技术栈【全栈】

本文全面探讨了Google的10年Java技术栈,涵盖基础、Web开发、分布式、中间件和大数据等多个领域。内容包括Java基础(算法、设计模式等)、Web开发(SpringMVC、SpringAOP、事务处理等)、分布式系统(ZooKeeper、RPC框架、消息队列等)、数据库和ORM框架、以及大数据技术(Hadoop、MapReduce等)。深入解析了各个领域的核心概念、源码实现和最佳实践。
摘要由CSDN通过智能技术生成

java技术栈

参考了众多资料,这里就不再详细列举了,可以自行去搜索

1 java基础:

1.1 算法

  • 1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序
  • 1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase)
  • 1.3 BitSet解决数据重复和是否存在等问题

1.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实现等
  • 2.12 string的intern方法的内部细节,jdk1.6和jdk1.7的变化以及内部cpp代码StringTable的实现

1.3 设计模式

  • 单例模式
  • 工厂模式
  • 装饰者模式
  • 观察者设计模式
  • ThreadLocal设计模式
  • 。。。

1.4 正则表达式

  • 4.1 捕获组和非捕获组
  • 4.2 贪婪,勉强,独占模式

1.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 垃圾回收算法

    标记-清除(不足之处:效率不高、内存碎片)

    复制算法(解决了上述问题,但是内存只能使用一半,针对大部分对象存活时间短的场景,引出了一个默认的8:1:1的改进,缺点是仍然需要借助外界来解决可能承载不下的问题)

    标记整理

  • 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

1.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

1.7 线程池源码

  • 7.1 内部执行原理
  • 7.2 各种线程池的区别

2 web方面:

2.1 SpringMVC的架构设计

  • 1.1 servlet开发存在的问题:映射问题、参数获取问题、格式化转换问题、返回值处理问题、视图渲染问题
  • 1.2 SpringMVC为解决上述问题开发的几大组件及接口:HandlerMapping、HandlerAdapter、HandlerMethodArgumentResolver、HttpMessageConverter、Converter、GenericConverter、HandlerMethodReturnValueHandler、ViewResolver、MultipartResolver
  • 1.3 DispatcherServlet、容器、组件三者之间的关系
  • 1.4 叙述SpringMVC对请求的整体处理流程
  • 1.5 SpringBoot

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值