👍推荐 [在线阅读](https://itwanger.gitee.io/tech-sister-learn-java) (Github 访问速度比较慢可能会导致部分图片无法刷新出来) 👍点击关注[公众号](#公众号)及时获取作者最新文章,并可免费领取配套的《教妹学 Java》PDF 以及 Java 工程师必备学习资源。
PDF下载

# 前言 同学们好,我是二哥呀,欢迎来到《教妹学 Java》专栏。 ![](https://cdn.jsdelivr.net/gh/itwanger/Tech-Sister-Learn-Java/images/tech-sister-01.png) 之前在公众号上更新《教妹学 Java》专栏的时候,有个小姐姐留言说,已经三连。CS大姐一枚。入门课程也是Java,学得云里雾里的。经常在找到自信和零自信之间受虐。感谢作者创作出这么有趣且容易理解的Java课。会持续关注,并推荐给其他学CS的朋友,截图如下: ![](https://cdn.jsdelivr.net/gh/itwanger/Tech-Sister-Learn-Java/images/tech-sister-02.png) 特别受鼓舞!!!! # 目录 ## **基础知识** - [什么是 Java](docs/basic/what-is-java.md) - [Java 发展简史](docs/basic/java-history.md) - [Java 为什么如此流行](docs/basic/why-java-popular.md) - [第一个 Java 程序:Hello World](docs/basic/hello-world.md) - [Java程序在编译期发生了什么](docs/basic/what-happen-when-javac.md) - [JDK 和 JRE 有什么区别](docs/basic/jdk-jre.md) - [JVM 是什么](docs/basic/jvm.md) - [Java 变量类型有哪些](docs/basic/java-var.md) - [Java 数据类型有哪些](docs/basic/java-data-type.md) - [必知必会的 Unicode:躲开锟斤拷](docs/basic/unicode.md) - [Java 运算符有哪些?](docs/basic/java-operator.md) - [一网打尽 Java 的那些关键字](docs/basic/java-keywords.md) - [流程控制语句有哪些?图解版](docs/basic/java-control.md) - [Java 注释:程序的注解](docs/basic/javadoc.md) ## **对象和类** - [技术大佬的必备素质:命名优雅](docs/object-class/java-naming.md) - [对象和类的相爱相杀](docs/object-class/java-object-class.md) - [方法:我负责程序的行为](docs/object-class/java-method.md) - [构造方法:对象初始化的必经之路](docs/object-class/java-construct.md) - [学妹必须学会的 static 关键字](docs/object-class/java-static.md) - [学弟必须掌握的 this 和 super ](docs/object-class/java-this.md) - [傻傻分不清:方法重载和方法重写](docs/object-class/override-overload.md) - [代码初始化块:让我先走一步](docs/object-class/code-init.md) - [再见了,我的 final 关键字](docs/object-class/java-final.md) - [判断对象的类型:instanceof 关键字](docs/object-class/java-instanceof.md) - [抽象类:子类复用的基石](docs/object-class/java-abstract.md) - [接口:抽象的另外一种表现形式](docs/object-class/java-interface.md) - [Java 表示:我只有值传递,没有引用传递](docs/object-class/pass-by-value.md) - [面试经典题目:浅拷贝与深拷贝有什么区别](docs/object-class/deep-copy.md) - [自动拆箱与自动装箱,好玩](docs/object-class/box.md) - [深入理解 Java 的反射](docs/object-class/fanshe.md) - [撸个注解有什么难的](docs/object-class/annotation.md) ## **数组** - [最重要的数据结构之一:数组](docs/array/gailan.md) - [数组的专用工具类:java.util.Arrays](docs/array/arrays.md) - [打印数组最优雅的方式:deepToString](docs/array/print.md) ## **字符串** - [从源码的角度来看字符串的不可变性](docs/string/source.md) - [学弟学妹都必须掌握的字符串常量池](docs/string/constant-pool.md) - [深入浅出之美团技术团队解析过的 String.intern](docs/string/intern.md) - [如何比较两个字符串是否相等](docs/string/equals.md) - [如何拼接字符串](docs/string/join.md) - [如何拆分字符串](docs/string/split.md) ## **异常处理机制** - [异常处理机制](docs/exception/gailan.md) - [try-catch-finally](docs/exception/try-catch-finally.md) - [throw 和 throws](docs/exception/throw-throws.md) - [try-with-resouces](docs/exception/try-with-resouces.md) # 公众号 如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号“**沉默王二**”。 **《教妹学Java》:** 本文档的离线版 PDF 版可以扫描下方的二维码关注我的[公众号](#公众号)后回复 **"03"** 关键字即可领取!
图片没显示的话,可以微信搜索「沉默王二」关注
# 备注 **图片使用了 jsdelivr 进行加速**,这应该是 GitHub 图床的正确使用方法。重点,敲黑板了哈,有需要图床的同学可以参考这种做法哈。 做法非常简单,分两步: - 第一步,创建一个 GitHub 仓库作为图床仓库,把图片上传上去,可以使用 GitHub 桌面版上传,很方便。 - 第二步,在要使用 GitHub 图床的地方将图片的链接替换为 `https://cdn.jsdelivr.net/gh/user/repo@version/file` 这种形式。 比如说,我要用 markdown 的形式加载一张图片,路径可以替换成下面这种形式。 ``` ![](https://cdn.jsdelivr.net/gh/itwanger/Tech-Sister-Learn-Java/images/tech-sister-01.png) ``` - `itwanger` 是我的 GitHub 账号名 - `Tech-Sister-Learn-Java` 是仓库名 - `images` 是仓库下的一个目录,专门存放图片用的 - `tech-sister-01.png` 是图片名 换成这种格式后,就可以享受 jsdelivr 提供的全球 CDN 加速服务了,关键是还是免费,白嫖起来真香~⚠️ # Donate 开源不易,如果《教妹学 Java》专栏对你有些帮助,可以请二哥喝杯咖啡,让他继续肝!