Java 进阶
Java 进阶
Andrew.J
以终为始,闭环迭代,持续提高。
展开
-
你知道哪些算法?讲一下它的内部实现过程?
上一文章我们介绍了数据结构的知识,数据结构属于计算机存储的基础,有了它才能更好地将数据进行存储。而算法可以这样理解:它是为数据结构服务的,使用合适的算法可以更快地操作和查询这些数据。算法的内容有很多,随随便便一本算法书有个 700 页到 1500 页也是很平常的事,因此我们在这里不能把所有的算法问题全部讲到,即使专门再开设一个算法专栏,也只能挑重点的讲。那么我们好钢就要用在刀刃上,这里会把面试中经常出现的和平常工作中使用频率最高的算法,拿出来给大家分享。你知道哪些算法?讲一下它的内部实现?典型回答最原创 2020-12-07 22:58:26 · 536 阅读 · 0 评论 -
红黑树和平衡二叉树有什么区别?
数据结构属于理解一些源码和技术所必备的知识,比如要读懂 Java 语言中 TreeMap 和 TreeSet 的源码就要懂红黑树的数据结构,不然是无法理解源码中关于红黑树数据的操作代码的,比如左旋、右旋、添加和删除操作等。因此我们就来学习一下数据结构的基础知识,方便看懂源码或者是防止面试中被问到。红黑树和二叉树有什么区别?典型回答要回答这个问题之前,我们先要弄清什么是二叉树?什么是红黑树?二叉树(Binary Tree)是指每个节点最多只有两个分支的树结构,即不存在分支大于 2 的节点,二叉树的数据原创 2020-12-07 22:38:44 · 1886 阅读 · 0 评论 -
你知道哪些设计模式?分别对应的应用场景有哪些?
上一篇文章我们讲了单例模式的 8 种实现方式以及它的优缺点,可见设计模式的内容是非常丰富且非常有趣。我们在一些优秀的框架中都能找到设计模式的具体使用,比如前面 MyBatis 中讲的那些设计模式以及具体的使用场景,但由于设计模式的内容比较多,有些常用的设计模式在 MyBatis 课时中并没有讲到。因此我们就以全局的视角,来重点学习一下这些常用设计模式。你知道哪些设计模式?它的使用场景有哪些?它们有哪些优缺点?典型回答设计模式从大的维度来说,可以分为三大类:创建型模式、结构型模式及行为型模式,这三大类下原创 2020-12-07 21:48:32 · 1549 阅读 · 0 评论 -
单例的实现方式有几种?它们有什么优缺点?
单例模式是 Java 中最简单的设计模式之一,它是指一个类在运行期间始终只有一个实例,我们就把它称之为单例模式。它不但被应用在实际的工作中,而且还是面试中最常考的题目之一。通过单例模式我们可以知道此人的编程风格,以及对于基础知识的掌握是否牢固。单例的实现方式有几种?它们有什么优缺点?典型回答单例的实现分为饿汉模式和懒汉模式。顾名思义,饿汉模式就好比他是一个饿汉,而且有一定的危机意识,他会提前把食物囤积好,以备饿了之后直接能吃到食物。对应到程序中指的是,在类加载时就会进行单例的初始化,以后访问时直接使用原创 2020-12-05 00:15:09 · 375 阅读 · 0 评论 -
生产环境如何排除和优化 JVM?
将重点讲解 JVM 的排查与优化,这样就会对 JVM 的知识点有一个完整的认识,从而可以更好地应用于实际工作或者面试了。生产环境如何排查问题?典型回答如果是在生产环境中直接排查 JVM 的话,最简单的做法就是使用 JDK 自带的 6 个非常实用的命令行工具来排查。它们分别是:jps、jstat、jinfo、jmap、jhat 和 jstack,它们都位于 JDK 的 bin 目录下,可以使用命令行工具直接运行,其目录如下图所示:接下来我们来看看这些工具的具体使用。1. jps(虚拟机进程状况工具原创 2020-12-05 00:13:53 · 338 阅读 · 0 评论 -
你用过哪些垃圾回收器?它们有什么区别?
上一文章我们讲了垃圾回收的理论知识,而本课时将介绍这些理论知识的具体实践。垃圾回收器也叫垃圾收集器,不同的厂商对垃圾收集器的实现也是不同的,这里主要介绍目前使用最广泛的 OracleJDK 中自带的 HotSpot 虚拟机中的几个垃圾收集器。你用过哪些垃圾回收器?它们有什么区别?典型回答《Java 虚拟机规范》并没有对垃圾收集器的具体实现做任何的规定,因此每家垃圾收集器的实现方式都不同,但比较常用的垃圾回收器是 OracleJDK 中自带的 HotSpot 虚拟机。HotSpot 中使用的垃圾收集器主原创 2020-12-05 00:13:12 · 470 阅读 · 0 评论 -
垃圾回收算法有哪些?
说到 Java 虚拟机不得不提的一个词就是 “垃圾回收”(GC,Garbage Collection),而垃圾回收的执行速度则影响着整个程序的执行效率,所以我们需要知道更多关于垃圾回收的具体执行细节,以便为我们选择合适的垃圾回收器提供理论支持。如何判断一个对象是否“死亡”?垃圾回收的算法有哪些?典型回答垃圾回收器首先要做的就是,判断一个对象是存活状态还是死亡状态,死亡的对象将会被标识为垃圾数据并等待收集器进行清除。判断一个对象是否为死亡状态的常用算法有两个:引用计数器算法和可达性分析算法。引用计数原创 2020-12-05 00:12:31 · 1365 阅读 · 0 评论 -
说一下 JVM 的内存布局和运行原理?
JVM(Java Virtual Machine,Java 虚拟机)顾名思义就是用来执行 Java 程序的“虚拟主机”,实际的工作是将编译的 class 代码(字节码)翻译成底层操作系统可以运行的机器码并且进行调用执行,这也是 Java 程序能够“一次编写,到处运行”的原因(因为它会根据特定的操作系统生成对应的操作指令)。JVM 的功能很强大,像 Java 对象的创建、使用和销毁,还有垃圾回收以及某些高级的性能优化,例如,热点代码检测等功能都是在 JVM 中进行的。因为 JVM 是 Java 程序能够运行的原创 2020-12-05 00:11:24 · 142 阅读 · 0 评论