这门课解决什么问题

日常写 Java 业务代码,很多时间花在重复的判空、字符串拼接、集合拆分、参数校验上。JDK 原生写法冗长,出错点还多。Guava 是 Google 开源的 Java 基础工具库,把这些高频操作收成了一套稳定的 API。这门课要解决的,就是让你在真实项目里少写样板代码:拼接集合时不用手写循环加分隔符,拆分字符串时不用纠结正则和空值,校验入参时不用一层层 if 判断。它不教你架构,也不讲框架原理,只聚焦一件事——把 Guava 里最常用的几块工具用顺手,替换掉你项目里那些又长又容易出错的土办法。

适合什么基础,建议先看哪几块

需要你有基本的 Java 语法基础,能看懂泛型、集合、Lambda 表达式,最好接触过 Java 8 的 Stream 和 Optional。如果连接口和匿名内部类都不熟,学起来会卡。课程从 Joiner 和 Splitter 讲起,这两块是使用频率最高、也最容易和 Java 8 Collector 做对比的部分,建议优先看,看完就能立刻在项目里替换掉字符串拼接和分割的旧代码。接着看 Preconditions、Objects、MoreObjects、ComparisonChain 这一组,它们负责参数校验和对象比较,属于写业务方法时的刚需。字符串处理、StopWatch 计时、ServiceLoader 这几讲可以按需跳看。函数式接口那一讲明确说了和 Java 8 高度重合,熟悉 Stream 的人可以略过,不必强求从头到尾。Files 部分讲得偏细,建议先扫一遍知道有哪些能力,真用到文件读写时再回来查。

学完能独立做什么,资料怎么配合练习

学完之后,你应该能独立完成这些事:用 Joiner 和 Splitter 处理集合与字符串的互转,并处理 null 和空字符串;用 Preconditions 在方法入口做参数校验,让错误尽早暴露;用 Objects 和 ComparisonChain 写对象比较逻辑;用 StopWatch 给代码段做耗时统计;用 Files 简化常见的文件读取。这些都是能直接落到工作代码里的动作,不是概念。

资料里带了源码课件,这是配合练习的关键。建议每看完一讲,先自己用 JDK 原生写法实现一遍同样的功能,再用 Guava 重写,对比两者行数和可读性,这样印象最深。源码不要只读,要动手改参数、造边界值,比如给 Splitter 传空字符串、给 Joiner 传含 null 的集合,看它怎么反应。函数式接口和 Files 这两块,按你项目里的实际需要决定投入多少时间,不必平均用力。整体节奏上,把 Joiner、Splitter、Preconditions 这三块练熟,就已经能覆盖大部分日常场景。

课程目录

课程目录4 集
  • 【龙果学院】Google Guava深入浅出 - 带源码课件 ├── 第01讲-Joiner详细介绍以及和Java8Collector对比.mp4
  • ├── 第02讲-Guava Splitter详细讲解以及实战练习.mp4
  • ├── 第03讲-Preconditions&Objects&assert讲解.mp4
  • ├── 第04讲-Objects&MoreObjects&ComparisonChain.wmv ├── 第05讲-Strings&Charsets&CharMatcher.wmv ├── 第06讲-Guava之函数式接口(非常类似Java8,熟悉的可以不看).wmv ├── 第07讲-Guava之StopWatch和JDK之ServiceLoader讲解.wmv ├── 第08讲-Guava之Files讲解(废话比较多).wmv ├── 第09讲-Guava之Files讲解第二部分.wmv ├── 第10讲-Guava之Files讲解第三部分.wmv ├── 第11讲-Guava之CharSource和CharSink源码剖析.wmv ├── 第12讲-Guava之ByteSource和ByteSink源码剖析.wmv ├── 第13讲-Guava之CharStreams和ByteStreams源码剖析(比较简单).wmv ├── 第14讲-Guava之Closer使用和原理剖析,非常重要.wmv ├── 第15讲-Base64原理详解,手动实现base64的Encoding.wmv ├── 第16讲-Base64原理详解,手动实现base64的Decoding.wmv ├── 第17讲-Guava之EventBus的使用详解.wmv ├── 第18讲-Guava之EventBus的使用详解-2.wmv ├── 第19讲-Guava之EventBus和NIO2.0 WatchService综合实战.wmv ├── 第20讲-实战:手动实现一个EventBus-01快速搭建程序结构.wmv ├── 第21讲-实战:手动实现一个EventBus-02快速实现程序功能.wmv ├── 第22讲-实战:手动实现一个EventBus-03总结与查缺补漏.wmv ├── 第23讲-Guava EventBus源码剖析以及优缺点总结.wmv ├── 第24讲-Guava之Monitor使用讲解.wmv ├── 第25讲-Guava之RateLimiter在漏桶限流算法中的使用.wmv ├── 第26讲-Guava之RateLimiter令牌桶算法的使用.wmv ├── 第27讲-ListenableFuture,FutureCallBack讲解.wmv ├── 第28讲-LRU算法原理以及两种LRU算法的实现.wmv ├── 第29讲-SoftReference,WeakReference,PhantomReference精讲.wmv ├── 第30讲-SoftReference加LRU算法实现InMemoryCache.wmv ├── 第31讲-Guava之CacheLoader,CacheBuilder,LoadingCache以及两种驱逐策略讲解.wmv ├── 第32讲-Guava之WeakKey,SoftValues,时间逐出的两种策略.wmv ├── 第33讲-Guava Cache之NullValue,Removal通知,Refresh,预加载等.wmv ├── 第34讲-Guava Cache之RecordStats,CacheBuilderSpec详解.wmv ├── 第35讲-Guava Collections之FluentIterable详细讲解.wmv ├── 第36讲-Guava Collections之Lists详细介绍.wmv ├── 第37讲-Guava Collections之Sets讲解.wmv ├── 第38讲-Guava Collections之Maps,BiMap,MultiMap详细介绍.wmv ├── 第39讲-Guava Collections之Table,Range用法详细介绍.wmv ├── 第40讲-Guava Collections之Range,RangeMap详细讲解.wmv ├── 第41讲-Guava Collections之Immutable Collections,Sorted Collections.wmv └── 课件.7z