0%

1. SpringBoot HelloWorld

在使用 SpringBoot 框架时,个人推荐参考官方网站,虽然是英文文档也比较难懂些,但是也是最权威的。好吧,下面开始从基础上来创建一个 SpringBoot 项目吧!

假设现在需要一个简单的功能,即浏览器向 SpringBoot 项目发送一个 hello 请求,服务器接受请求并处理后,在页面上显示Hello World字符串。

阅读全文 »

1. 文章标题

目前 Hexo 建议使用顺序的文章标题,也就是使用如下格式的标题结构:

1
2
3
4
5
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
...
阅读全文 »

我们先来看一个题目:给定一颗二叉树的头节点 head,完成二叉树的先序、中序和后序遍历。如果二叉树的节点数为 N,要求时间复杂度为 O(N),额外空间复杂度为 O(1)。

阅读全文 »

在线性表,数据元素之间是被串起来的,仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继,即存在一对一的关系。在树形结构中,数据元素之间有着明显的层次关系,并且每一层上的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素相关,即存在一对多的关系。图是一种较线性表和数更加复杂的数据结构。在图结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关,图存在多对多的关系。

阅读全文 »

1. 贪心算法简介

1.1 基本定义

在贪婪算法(greedy method) 中,我们要逐步构造一个全局最优解。每一步,我们都在一定的标准下,做出一个最优决策。也就是说,不从整体最优上加以考虑,它所做出的仅是在某种意义上的局部最优解。做出决策所依据的标准称为贪心准则(greedy criterion)。

阅读全文 »

1. 内存泄漏

1.1 定义

内存泄漏是指一个不再被程序使用的对象或变量还在内存中占有存储空间。在C/C++语言中,内存的分配与释放是由开发人员来负责的,如果开发人员忘记释放已分配的内存就会造成内存泄漏。而在Java语言中引进了垃圾回收机制,由垃圾回收器负责回收不再使用的对象。既然有垃圾回收器来负责回收垃圾,那么是否还会存在内存泄漏的问题呢?

其实,在Java语言中,判断一个内存空间是否符合垃圾回收的标准有两个:第一,给对象赋了空值null,以后再也没有被使用过;第二,给对象赋予了新值,重新分配了内存空间。一般来讲,内存泄漏主要有两种情况:一是在堆中申请的空间没有被释放;二是对象已经不再被使用,但还仍然在内存中保留着。 垃圾回收机制的引入可以有效地解决第一种情况;而对于第二种情况,垃圾回收机制则无法保证不再使用的对象会被释放。因此,Java语言中的内存泄漏主要指的是第二种情况。

阅读全文 »

以ParallelGC为例

YoungGC日志解释如下:

阅读全文 »

一、简介

MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化.
EXPLAIN 命令用法十分简单, 在 SELECT 语句前加上 Explain 就可以了, 例如:

1
EXPLAIN SELECT * from user_info WHERE  id < 300;
阅读全文 »

一、运行时区域数据

Java 虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。

1577883510636

阅读全文 »

一、概述

程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。垃圾回收主要是针对 Java 堆和方法区进行。

阅读全文 »