自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 Maven 的学习总结

Maven 的学习总结什么是 MavenMaven:Apache 的一款开源自动化的项目管理工具,主要有两项功能:项目构建:主要是项目的清理,编译,测试,打包,部署等工作依赖管理:pom.xml,通过 pom 文件上的坐标自动下载jar包现有的问题随着 JavaWeb 项目的变大,引入的第三方依赖越来越多,产生的问题有:频繁引入相同的 jar 包jar 包间存在相互依赖的问题...

2020-02-18 22:14:16 250

原创 IDEA - 利用 Mybatis 使用 maven 命令生成逆向工程

IDEA - 利用 Mybatis 使用 maven 命令生成逆向工程数据库建表在本地的数据库建立表,然后利用 Mybatis 使用 maven 命令生成逆向工程。本地使用 maven 建立一个项目maven 建立项目,pom.xml 文件配置如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http:/...

2020-02-18 01:02:37 661 1

原创 日常 - jps 命令

问题产生今天使用 idea 运行一个程序来使用 JVM 的一些参数,中途 idea 突然退出,之后使用 jps 命令发现程序仍在运行。以下是使用 Terminal 终端查看记录:>>jps11712 HelloGC11728 HelloGC12720 KotlinCompileDaemon6560 Jps1860 Launcher9288 RemoteMavenServ...

2020-01-19 11:08:57 346

原创 Java - JavaSE - 多线程

多线程多线程创建的三种方式:继承 Thread 类,重写 run 方法。实现 Runnable 接口。实现 Callable 接口。这个方法比较编写代码比较复杂,是 JDK 1.5 出来的。方式 1 和 方式 2 的区别:extends 是继承,一般要增强类的功能使用,重写或添加方法。implements 是实现接口。单继承和多实现。Thread 类源码分析从官方文档得...

2020-01-02 11:24:17 218

原创 Linux - 查看 Tomcat 是否正在运行

Linux - 查看 Tomcat 是否正在运行命令 ps -ef | grep java ,查看到的数据为:root 2197 1 0 Nov12 ? 01:08:15 java -jar halo-1.0.3.jarroot 2586 2506 0 19:24 pts/0 00:00:00 grep --color=auto java...

2019-12-09 19:33:39 958

原创 LeetCode - 链表 - _002_AddTwoNumbers

_002_AddTwoNumbers要点先判断传入节点是否有一个为空,有的话直接返回另一个节点。在传入节点都非空情况下,定义一个哑节点,可以有效防止下一个节点为 null,可以先创建好节点,再将指针移动,如此处:cur.next = new ListNode(sum % 10);cur = cur.next;需要注意使用自定义指针来代替移动传入的指针,这样就不破坏原来传入的结构了...

2019-12-06 15:39:27 98

原创 算法 - 平衡二叉树

平衡二叉树今天有同学问了我如何构造平衡二叉树,总结如下:平衡因子 BF(balance factor)为该节点左子树高度 - 右子树高度,绝对值如果 ≤ 1,则二叉树不需要调整。平衡二叉树构造过程比较简单,分为四种情况:LL 插入RR 插入LR 插入RL 插入用实例解释一下四种情况的调整方案:LL 插入:可以计算得到 8 的 BF 为 2,受到破坏且是第一个发现的节点,L...

2019-12-04 19:36:22 283

原创 GitHub - 如何学习一个项目

如果已经在 GitHub 上找到了一个完整的项目,如何学习一个项目呢?以 halo 博客系统为例,该项目使用 gradle 管理,使用了 Spring Boot 框架。查看依赖通过 maven 或 gradle 的配置查看项目依赖了哪些组件。运行项目Spring Boot 的项目在 src 目录下有一个 application 入口,可以据此运行整个项目。查看 resources,配置文...

2019-12-04 00:55:15 1255

原创 GitHub - 不常用的功能

comparehttps://github.com/vuejs/vue/compare/dev...0.12-csp上面举了一个例子,是 vuejs 的 vue 项目,使用了 compare 功能来比较项目不同 commit 的区别,比较的双方是 dev 和 0.12-csp 。举这个例子来展示 GitHub 网站的 compare 功能。treehttps://github.com/vu...

2019-12-04 00:39:52 129

原创 git - IDEA

Annotate在我本地的项目 java-demo 中是建立了一个 git 仓库,每次提交代码都会在里面建立了一个快照,使用 IDEA 打开这个项目,在代码行处右键打开 Annotate 选项就看到对这份文件每次修改的代码和时间戳,点击里面的某一行还能看到提交这个 commit 的同时整个项目有哪些文件进行修改。使用 git checkout [SHA-1] 可以返回某个状态的 commit...

2019-12-01 22:04:17 114

原创 git - 高级

常用命令创建分支 - git branch单纯的使用 git branch 命令会显示当前的分支名称,使用 git branch feature1 创建了一个名为 feature1 的分支,git checkout feature1 表示切换到 feature1 分支,git checkout -b feature2 则是上述两个命令的结合,创建并切换到 feature2 分支。$ git ...

2019-12-01 22:03:24 91

原创 git - 初级

常用命令git init可以初始化一个本地的 git 仓库,将创建一个 .git 隐藏文件夹,存储本地多次提交的历史信息。git clonegit clone [url] :GitHub 上每一个项目都有一个 url,使用这个命令可以从远程克隆一个仓库。git clone 也可以从本地一个目录克隆到另一个目录:创建 test 文件夹,并使用 git init 命令使用 git c...

2019-12-01 22:02:44 170

原创 GitHub - 如何高效搜索一个项目

网址真传一句话,假传万卷书。网址给上,https://github.com/search/advanced。通过 GitHub 做的图形化界面,可以很快的学会如何快速搜索,里面的选项非常全面,当用熟练之后也就自然而然掌握常用的几个搜索限制条件。常用提示输入Advanced searchspring bootlanguagelanguage:Javasta...

2019-12-01 13:00:17 292

原创 日常 - 从 OutOfMemoryError 引发的思考

目录问题步骤实现 OOM拿到 Heap Dump 快照第一第二说明分析 OOM分析快照常用工具VisualVMMATHistogramDominator TreeLeak SuspectsTop ComponentsHeap Dump 分析观看视频学习如何引发 OOM 和排查问题的过程,视频。通过这个视频的学习了解了不少 JVM 的知识以及 debug 的方法,记录如下。问题常见的 Out...

2019-11-30 18:49:43 552

原创 算法 - 链表 - 判断一个链表是否为回文结构

目录问题三 判断一个链表是否为回文结构思路快慢指针举例进阶思路实现问题三 判断一个链表是否为回文结构给定一个链表的头节点 head,请判断该链表是否为回文结构。1->2->1,返回 true。1->2->2->1,返回 true。15->6->15,返回 true。1->2->3,返回 false。思路第一次遍历,使用一个栈结...

2019-11-28 13:37:35 291

原创 算法 - 链表 - 打印两个有序链表的公共部分

问题二 打印两个有序链表的公共部分给定两个有序链表的头指针 head1 和 head2,打印两个链表的公共部分。思路:类似于比较两个有序数组共同具有的有序部分。public static void printCommonPart(Node head1, Node head2) { if (head1 == null || head2 == null) return; whil...

2019-11-28 13:33:38 291

原创 算法 - 二叉树

二叉树二叉树按层遍历打印宽度优先遍历,通常使用队列结构。常常有按照层数换行的问题。 1 / \ 2 3 / / \ 4 5 6 / \ 7 8 output:12 34 5 67 8思路:这时可以使用两个变量记...

2019-11-27 13:33:11 78

原创 算法 - 链表 - 反转单向和双向链表

链表问题一:反转单向和双向链表分别实现反转单向链表和反转双向链表的函数。要求:如果链表长度为 N,时间复杂度要求为 O(N),额外空间复杂度要求为 O(1)。反转单向链表public static Node reverseOne(Node head) { if (head == null || head.next == null) { return head; ...

2019-11-27 13:32:43 240

原创 算法 - 矩阵问题

矩阵问题问题一:转圈打印矩阵给定一个整型矩阵matrix,请按照转圈的方式打印它。要求:额外空间复杂度为O(1)。例如:[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ]打印结果为:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10本题可以在 LeetCode 54 螺旋矩阵测试结果。思路...

2019-11-26 18:06:22 1075

原创 GitHub - 在 Windows 系统下使用批处理文件自动提交代码到 GitHub 上

需求每天都上传代码到 GitHub 上,需要一种脚本文件自动完成一些重复的工作。git add .git commit -m “message”git push缺点是上传的 message 都为 “auto commit”,违背了代码管理的初衷,以后查看这些 message 很难知道当时修改了什么内容。经过测试可得,如果当天没有修改项目文件内容,则不会完成 add commit p...

2019-11-26 11:03:57 434

原创 Java - JavaSE - String | StringBuffer

String 类正则表达式Pattern 类s.matches();s.replaceFirst();s.replaceAll();s.split();StringBuffer文档说明根据 StringBuffer 的文档说明可知:StringBuffer 是线程安全的,主要体现在它的方法上有 synchronized 同步锁,也因此导致其执行效率较低。StringBuf...

2019-11-24 14:54:41 169

原创 Java - JavaSE - 数组

数组声明和初始化//声明int[] arr;//初始化//静态初始化,初始化并赋值int[] arr = new int[]{0, 1, 2};//动态初始化,初始化,之后再赋值int[] arr = new int[3];错误的方式:int[] arr = new int[]; //没有指定数组大小int[3] arr = new int[3]; //arr 前的 i...

2019-11-24 14:50:37 101

原创 算法 - 数组 | 栈 | 队列

使用数组模拟栈和队列使用数组模拟栈,包括栈的 push、pop 和 peek 操作。public class ArrayStack { private Integer[] arr; private Integer size; public ArrayStack(int initSize) { if (initSize < 0) { ...

2019-11-23 17:50:12 233

原创 算法 - 排序 - 非基于比较的排序

非基于比较的排序非基于比较的排序与样本的数据状况有很大的关系,由于这个限制使其在工程中并不常用。非基于比较的排序有桶排序,基数排序,计数排序。这三者都能做到排序的稳定性,时间复杂度为 O(n),空间复杂度为 O(n)。问题一:假设存在一组数据,里面的数据只有 0 ~ 60 ,使用非基于比较的排序思路:此时可以使用计数排序,准备 61 个桶并编号 0 ~ 60 (具体实现可以是一个长度为 ...

2019-11-22 17:32:49 1382

原创 算法 - 比较器 - Comparator

比较器当排序不是程序的主要内容时,使用自定义比较器能够较快的实现排序目的。需要实现 Comparator 接口。/** * 比较器 */public class ComparatorTest01 { public static void main(String[] args) { Integer[] arr = {4, 5, 3, 2, 4, 5, 6, 72, ...

2019-11-20 20:14:36 194

原创 日常 - 真随笔

对于 JDK 源码的一些误解这是一篇小记录,起因是看到 Arrays 源码产生的不理解。/** * @since 1.2 */public class Arrays { public static void sort(int[] a) { DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0); }...

2019-11-20 12:40:10 92

原创 算法 - 排序算法的稳定性

排序算法的稳定性排序的稳定性,指原有数据相同值的原始次序不变。可以:冒泡排序遇到相等的数不交换即可做到稳定。插入排序,遇到相等的数即停止比较,插入数组。归并排序 merge 过程中,遇到相等的值先填入左区域的值就可以做到稳定。不可以:选择排序不能做到稳定性,选择数值的时候交换数字是会打乱原始的次序。随机快排不具有稳定性,因此荷兰国旗问题也是不能做到稳定性的。堆排序。稳定...

2019-11-20 11:50:45 268

原创 算法 - 堆排序 - 随时找到数据流的中位数

堆排序注意,堆这个结构需要知道什么是满二叉树、完全二叉树。堆就是完全二叉树。堆使用数组存储数据,用数组模拟二叉堆结构,此时下标的关系有:父结点 i 的左子结点为 2i + 1,右子结点为 2i + 2子结点 i 找父结点公式为:(i - 1) / 2堆分大根堆和小根堆,每一个结点为子树的最大值称为大根堆,同理可知小根堆。以大根堆为例学习堆排序算法,小根堆同理做一些转换即可。he...

2019-11-19 21:52:08 423

原创 算法 - 快速排序 - 经典快排 | 随机快排

经典快排经典快排的思路是选取数组的最后一个数 x,按照问题一的思路把整个数组划分成 小于等于 x | 大于 x 两个部分,将 x 和 大于 x 部分数组的第一个元素交换位置。此时整个数组划分成 小于等于 x | x | 大于 x 三个部分,也就是这一次排序将 x 值排好位置。再分别对 小于等于 x 和 大于 x 中的数组递归划分,直到划分成一个数,此时所有元素也完成排序。按照问题二的思路可以...

2019-11-19 12:22:52 202

原创 算法 - 快速排序 - 荷兰国旗问题

问题一给定一个数组 arr,和一个数 num,请把小于等于 num 的数放在数组的左边,大于 num 的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N)。思路:遇到 arr[i] 小于等于 number 的数,交换 index + 1 和 arr[i],此时 index + 1 位置的数变成小于等于 number,index++;遇到 arr[i] 大于 number 的数,...

2019-11-19 10:04:11 232

原创 算法 - 归并排序 - 小和问题 | 逆序对问题

小和问题在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和称为小和问题。input: [2,4,5,1,7,3]2 左侧比 2 小的数,没有;4 左侧比 4 小的数,2;5 左侧比 5 小的数,2,4;1 左侧比 1 小的数,没有;7 左侧比 7 小的数,2,4,5,1;3 左侧比 3 小的数,2,1。output: 2+2+4+2+4+5+...

2019-11-18 14:47:26 138

原创 Java - JavaSE - 异常

异常throw 和 throws 的区别throw new RuntimeException(); 语句之后的代码无法再运行,此时 Eclipse 会显示 Unreachable code 错误。在 FileInputStream 的构造方法中可以看到,该方法抛出了一个异常,可以有两种处理方式:一是在调用该方法的另一个方法继续 throws FileNotFoundException,二是...

2019-11-17 21:44:01 149

原创 算法 - 排序 - 冒泡排序 | 选择排序 | 插入排序 | 希尔排序 | 归并排序

冒泡排序public static void bubbleSort(int[] arr) { if (arr == null || arr.length < 2) return; for (int i = arr.length - 1; i > 0; i--) { for (int j = 0; j < i; j++) { ...

2019-11-16 22:14:41 79

原创 Java - JavaSE - 面向对象

面向对象构造方法默认构造方法的 super() 调用父类 SuperClass 和 子类 SubClass,当子类的没有写构造方法的时候,编译会默认追加注释行代码,参看代码class SuperClass { public SuperClass() { System.out.println("Super"); }}class SubClass exte...

2019-11-13 22:33:03 181

原创 GitHub - 自动构建 GitHub 项目的 README.md 目录

本文适合支持 Markdown 语法的文本的自动化目录构建。结果目录自动生成,可自动化更新。# 目录<!-- MarkdownTOC levels="1,2" autolink="true" -->- [LeetCode 题解](#leetcode-%E9%A2%98%E8%A7%A3) - [链表](#%E9%93%BE%E8%A1%A8) - [栈-队列](...

2019-11-12 23:35:12 557

原创 Linux - 搭建个人网站

搭建个人网站购买阿里云服务器学生版有两种:学生专享-限24周岁以下/阿里云云服务器ECS/专业运维学生专享-限24周岁以下/阿里云轻量服务器/简单易操作。为啥选择轻量应用服务器?标题写明专业运维和简单易操作,既然是初次搭建网站,选择容易上手的服务器更佳。就配置而言应付日常练习应该够用,一年114。补充:如果关心 1000G 的流量问题,经过我的观察,运行服务器第一天,使用流量只有...

2019-11-11 17:24:31 1289

原创 Linux - 记录 Xshell 连接 Linux 虚拟机

记录 Xshell 连接 Linux 虚拟机查看 sshd 服务状态sshd 服务开启时可以使用 Xshell 等工具使用 ssh 方式远程连接终端输入 service sshd status 查看状态,如果没有开启,进入下一步开启 sshd 服务服务开启:打开终端输入 setup 命令查看系统服务选项找到 sshd 选项,查看是否开启,* 为开启注意:空格键,开启/关闭...

2019-11-11 17:23:14 150

原创 Java - JavaSE - 语言基础

语言基础算术运算符注意:算法(第四版)中指出+、-、*、/ 都是被重载过的Java 语言规范规定,在逻辑运算符中,! 拥有最高的优先级,之后是 &&,接下来是 ||%,如果对负数取模,可以把模数负号忽略不计。System.out.println(5 % -2); //1System.out.println(-5 % 2); //-1System.out.prin...

2019-11-10 23:35:46 178

原创 Java - JavaSE - 概述

概述常用 DOS 命令功能如何实现进入不同的磁盘D:查看当前目录所有文件和文件夹dir创建文件夹md test进入文件夹cd test退回到上一级目录cd…删除文件del test.txt删除多个同类型文件del *.txt删除空文件夹rd test删除非空文件夹,使用下列命令后提示选择 Ydel test...

2019-11-09 23:53:31 232

原创 Python - pip 常用命令小结

Python - pip 常用命令小结pip 是 Python 包管理工具,常用此工具对 Python 包的安装、卸载。在使用一段时间后,总结一些 cmd 命令行窗口常用的 pip 命令:pip --version # 判断电脑是否安装 pip 工具pip list # 查找 Python 软件中安装的第三方包pip install [packagename] # 安装第三方包pip u...

2019-10-29 21:10:45 289

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除