主页

Java 异常

Throwable 可以用来表示任何可以作为异常抛出的类,分为两种: Error 和 Exception。其中 Error 用来表示 JVM 无法处理的错误,Exception 分为两种: 受检异常 :除了 Error 和 RuntimeException 的其它异常,需要用 try…catch… 语句捕获并进行处理,并且可以从异常中恢复; 非受检异常 :Error 和 Runt...

阅读更多

Java 并发-编程基础

一、易混淆概念 1. 进程和线程 进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元。 一个程序下至少有一个进程,一个进程至少有一个线程,一个进程下也可以有多个线程来增加程序的执行速度。 2. 并行和并发 并行: 多个处理器或多核处理器同时处理多个任务。 并发: 多个任务在同一个 CPU核上,按细分的时间片轮流执行,由于时间间隔较短,使人感觉两个任务都在运行。 二、...

阅读更多

Java 语言基础

标识符 数字、字母、下划线和美元符号($)组成,不能以数字开头,区分大小写。关键字不能作为标识符。 参数传递 Java 的参数是以值传递的形式传入方法中,而不是引用传递。 在将一个参数传入一个方法时,本质上是将对象的地址以值的方式传递到形参中。 代码块 局部代码块 在方法中出现,限定变量生命周期,及早释放,提高内存利用率。 构造代码块 在类中方法外出现,多个构造方法中相...

阅读更多

算法 —「排序」十大排序算法汇总

一、选择排序 1. 思想 将最 小/大 的数交换到待排序序列的最前面。 首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么就和自己交换)。在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法叫做选择排序,因为它在不断地选择剩余元素之中的最小者。 2. 图解过程 3. 核心代...

阅读更多

Leetcode —「综合问题」系列题解

跳台阶 Leetcode - 70 Climbing Stairs (Easy) 假设到达台阶顶部有 n 个台阶,每次只能跳 1 个或者 2 个台阶,计算总共有多少跳到台阶顶部的方案。 Input: 3 Output: 3 Explanation: There are three ways to climb to the top. 1. 1 step + 1 step + 1 step...

阅读更多

算法 —「图」知识点完全汇总

一、什么是图? 图是一种比树结构更复杂的非线性结构。在图结构中,任意两个结点之间都可能相关,即结点之间的邻接关系可以是任意的。因此,图结构被用于描述各种复杂度的数据对象,在自然科学、社会科学和人文科学等许多领域有着非常广泛的应用。 图由一个顶点集合 V 和一条边(或者弧)集合 E 组成,通常记为 G = (V, E)。 二、相关术语 1. 无向图 在一个图中,如果任意两...

阅读更多

Leetcode —「图」系列题解

课程表 Leetcode - 207 Course Schedule (Medium) 题目描述:选课时总共有 n 门课程,但是有些课程需要先修其它课程,给定课程数量与先修课程关系,判断是否能够将课程修完。 Input: 2, [[1,0],[0,1]] Output: false Explanation: There are a total of 2 courses to take....

阅读更多