自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小林夕

欢迎大家指导小萌新

  • 博客(53)
  • 收藏
  • 关注

原创 Linux Part2 -- Linux的用户体系

文章目录Linux中的用户信息用户名密码UIDGID用户信息说明家目录地址Shell用户的管理增加用户修改密码删除用户切换用户其他有关用户的命令结语书接上文,我们聊了Linux的优点以及启动流程,Linux启动完之后我们要做的第一件事就是登陆。登陆需要用户名和密码,我们这篇文章就聊聊Linux的用户体系。Linux中的用户信息我们常说,在Linux中万物皆文件,代表用户的文件是/etc/passwd,它里面的内容是这样的:看起来复杂的文件我们来一点点解释。首先每一行代表一个用户,用户的多个信息之间用

2022-03-30 15:00:00 760

原创 Linux Part1 -- 从Linux的前世今生到启动流程

文章目录Linux的优势Linux的前世一台计算机的启动流程操作系统的运行级别结语今天聊一聊Linux。Linux这个系统大家一定都听说过,在我们这一行不可避免的和Linux打交道,保守估计Linux操作系统在服务器市场占了8成以上的份额,甚至微软也在大规模用Linux「手动狗头」。Linux的优势Linux受欢迎的原因众说纷纭,在我的观念里,Linux受欢迎的原因和MySQL受欢迎的原因基本一致:免费、稳定、开源、安全。首先是免费,毕竟没有人能拒绝白嫖的快乐。其次是稳定,作为服务器的操作系统,稳

2022-03-26 22:04:11 1564

原创 Maven 从入门到入土-Part2

Maven入土指南第二弹!

2021-12-26 15:00:00 326

原创 Maven 从入门到入土-Part1

这可能是最好的maven入门文档

2021-12-24 15:00:00 238

原创 数据库索引,从入门到入土

数据库索引文章目录数据库索引前言B+树的结构和特性聚簇索引和非聚簇索引联合索引小结前言数据库索引?什么是数据库索引?在维基百科中是这样写的:**数据库索引是数据库管理系统中一个排序的数据结构,,以协助快速查询、更新数据库表中数据。**简单来说,数据库索引就像书籍的目录一样,可以提高查询的效率,接下来我们就一起仔细分析下数据库的索引是什么样的,以及MySQL数据库有哪些索引。B+树的结构和特性众所周知,如果我们想要在一堆数据中查询一个数据,那么时间复杂度最低只需要O(logN),也就是使用二分查找

2021-12-21 15:00:00 204

原创 Zap为什么快?从源码来聊聊其优化方案

文章目录一条日志是如何输出的一条日志是如何落盘的小结zap作为uber开源的日志框架,真的是非常的强,在他的github主页他吊打了所有的其他主流日志库【手动狗头】。本篇文章就一起聊聊zap为什么这么快!zap提供了两种Logger:Loggger和SugaredLogger。SugaredLogger其实是在Logger上面进行一层封装。所以我们来捋一捋Logger的底层实现,步步为营分析其为什么这么快。一条日志是如何输出的在github把zap的代码扒下来后,进入logger.go,这算是l

2021-11-22 12:00:00 947

原创 如何关联远程仓库?

首先我们在Github或者Gitee创建一个仓库,用于存放我们的项目。创建好了之后我们在本地的IDE创建一个项目。这里创建任何类型的项目都可以,我就以简单的Maven项目为例,创建好项目后我们需要与远程的仓库进行关联。首先打开终端(控制台)。接下来开始关联远程仓库,一共需要如下几个步骤:设置全局用户名和邮箱(设置过可略过),主要用于在Gitee上显示提交人。git config --global user.name "XXX"和git config --global user.email "a

2021-11-20 21:32:40 2127

原创 21世纪后端最牛学习资料

文章目录Java基础【20H】数据库基础【32H】基础技能【2H】Web基础【40H】第一阶段练习【30H】后续学习语言高级Java数据库中级数据结构与算法操作系统、计算机网络JvmNoSql数据库高级Web高级和容器化结语字不如表,表不如图,直接上图!明明说是后端学习路线,为什么变成了Java学习路线?原因是这样的,因为Java作为当今最受欢迎的编程语言,它的学习资料非常多,这也就意味着Java更容易学习,所以我选择了Java来代表后端。同时大家也不用担心Java不好找工作,中小公司还是Java

2021-11-15 22:53:32 1616

原创 21世纪前端最牛学习资料

文章目录互联网基础知识【2H】HTML【3H】CSS【10H】第一阶段练习【18H】JavaScript【44H】第二阶段练习后续练习结语字不如表,表不如图,直接上图!接下来聊聊每一个阶段具体都要怎么学。所有的B站密码在bilibili直接搜就能找到对应的视频【区分大小写】互联网基础知识【2H】这一阶段是最基础的阶段,如果你对这些知识有一些了解可以直接略过。正因为这一阶段的知识都是了解性的,所以不需要看视频,也不需要系统的学习。所以这里的知识可以充分利用百度,花费2小时左右查一下这些知识都

2021-11-14 22:01:50 1112

原创 SpringBoot启动流程及原理

需求是需要做一个类似于Nacos和Apollo一样的客户端,可以无缝接入Spring生态;同时要求拉取到的配置可以像本地配置一样,也需要通过注解拉取,并支持热更新。首先我们来分析需求:需要拉取到的配置可以像本地配置一样。这就是对我拉取到配置的时机有一定要求:在某些Bean之前启动,比如spring-data之前启动,这样才可以让spring使用我们拉取到的配置进行启动。通过注解获取配置并支持热更新。这个需求分为两部分,一个是通过注解获取配置,一个是热更新。通过注解获取配置就需要我们将拉取到的配

2021-08-21 00:26:40 1529 1

原创 java to go 基础知识与区别入土指南

java to go 基础知识与区别入土指南文章目录java to go 基础知识与区别入土指南@[toc]基础篇关于基础类型关于复合数据类型关于切片关于Map关于sync.map关于结构体关于函数/方法关于defer关于协程关于Channel关于sync基础篇关于基础类型在基础类型上,go语言与Java略有不同,以整型为例,在java中只有一个int代表整形,而在go语言中,整形可以分为很多种,int8、int16、int32、int64,不同的数字代表占用不同大小的比特位,这种方式无疑是可以

2021-06-07 20:09:37 768 2

原创 [神坑]JWT报javax.xml.bind.DatatypeConverter at java.base/jdk.internal.

JWT报javax.xml.bind.DatatypeConverter at java.base/jdk.internal.JWT在.signWith()错误,网上很多人说什么jdk版本,其实可能就是你设置的jwt密钥过短!!!官方文档如下:

2020-09-13 15:30:47 2310

原创 算法之哈希表/JAVA

文章目录@[toc]1.3 哈希表1.3.1 hashCode与equals1.3.2 拉链法处理碰撞冲突1.3.3 基于线性探测法的哈希表1.3.4 哈希表与其他算法的比较1.3 哈希表什么是哈希表,哈希表是一种类似于数组的数据结构,它能通过Key的值直接找到对应的Value。而哈希表与数组的不同之处在于数组只能通过下标直接访问数据,且下标只能为整型(int),而哈希表则可以将任意数据类型作为Key。使用哈希表分为两部,第一步是用哈希函数将被查找的Key转化为数组的索引,当然理想情况是不同的键转换

2020-07-22 00:41:57 455

原创 算法之红黑树/JAVA

文章目录1.2 红黑树1.2.1 2-3查找树1.2.2 红黑树结点定义旋转操作插入put()实现红黑树的性质1.2 红黑树1.2.1 2-3查找树因为二叉查找树是不平衡的,如果我们顺序插入十个数据,那么其树高为10。最坏情况则需要10次查找才能找到所需要的数据,那么我们如果将其构造成一个平衡树的话,我们就可以将其树高降低为lgN这个级别,这将会大大降低最坏情况下的查找时间。而2-3查找树就是将二叉查找树变为平衡树的数据结构。首先我们引入一个概念:2- 结点:含有一个父键和两条链接,左链接指向的

2020-06-29 22:02:39 4863

原创 算法之二叉查找树/JAVA

1.1 二叉查找树从上面我们可以看出,二分查找的成本为对数级别,但插入成本仍为N,那么如何降低插入成本的同时保持查找成本不变或者更低呢?是否存在一种数据结构,可以保持二分查找的查找高效和链表的插入高效呢?答案就是二叉查找树。二叉查找树本质上是一个二叉树,它具有如下性质:每个结点的键都大于其左子树中的任意结点每个结点的键都小于其左子树中的任意结点每个节点都含有一个键、一个值、一个指向左节点的指针,一个指向右节点的指针、一个记录子节点数量的计数器每个结点都是一个二叉查找树我们首先根据以上条件构

2020-06-27 22:12:45 252

原创 算法之二分查找/JAVA

文章目录1.0 字典1.0.1 有序数组中的二分查找1.0 字典字典是一种抽象数据类型,它有一个索引和对应的数据,通过索引我们可以在O(1)时间内找到数据。其中索引称为键,数据称为值。字典遵循了以下的规则:键不重复键不为空每个键只对应一个值因为字典是一个可以通过键快速定位值的数据结构,所以用于查询是异常方便的,但是字典中的数据并不是一直不变,其中存在着更新、插入、删除等等操作,怎么在加入这些操作后依旧保障字典的优良特性是我们需要研究的问题。首先我们对更新插入和删除作为说明。更新实质上是

2020-06-24 02:02:40 224

原创 剑指offer 63 求输入流中位数/JAVA

剑指offer 63 求输入流中位数JZ63题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数解题思路:因为是输入流,所以直接考虑**优先队列!**那么也就是堆排序。如何利用堆排序找出中位数,我们可以先假设已经有一个排好序的数组。那么如何将数组储存进堆中使得直

2020-06-20 21:42:13 172

原创 算法之堆排序/JAVA

0.5 优先队列与堆排序什么是优先队列?优先队列是一种支持删除最大元素(或最小元素)和插入元素的数据结构,它适用于这样的一种情况。我们有巨大的数据量,同时还有输入,而我们也不需要将全部元素排序,我们只需要知道最大的元素即可。比较典型的应用就是模拟系统和任务调度,在任务调度中我们不需要对所有任务进行排序,我们只需要知道等待时间最久的元素即可,然后执行它,而这种情况下的输入数量无法确定,甚至可能是无限的。下面我们从这样的一个场景进行分析,加入我们有一个有关科学实验的数据模型,我们有成千上万台机器在运算数

2020-06-20 01:53:22 212

原创 算法之快速排序/JAVA

0.4 快速排序算法思想:快速排序,顾名思义就是比较快速的排序。快速排序也是典型的使用分治思想的排序算法,但是快速排序的稳定性较低,在编码时如果犯下一些小错误会使快速排序的时间复杂度达到最坏O(N^2)。快速排序的具体思路是将数组中的一个元素设置为“切分”,然后遍历数组,将比切分小的元素扔到切分左边,将比切分大的元素扔到切分右边,最后将切分左侧和右侧的数组分别排序,最后数组即为有序数。一般我们可以设置数组第一个元素为切分,找到切分后我们从左向右扫描数组,找到第一个大于切分的元素,然后再从右向左找到第一

2020-06-19 00:43:19 174

原创 算法之归并排序/JAVA

0.3 归并排序0.3.1 自顶向下的归并排序算法思想:归并排序是分治思想的典型应用,归并排序又叫二路归并,是将一个数组从中间分成两个子数组,然后对子数组再归并,最后再将两个子数组进行合并。具体算法流程如下:在实现归并排序的并的时候,有如下几种情况:左边小数组被用尽:取右边小数组元素进行并右边小数组被用尽:取左边小数组元素进行并左边数组元素小于右边数组元素:取左边小数组元素进行并右边数组元素小于左边元素:取右边小数组元素进行并所以我们很容易就可以实现并的部分 private stat

2020-06-18 01:52:01 304

原创 算法之希尔排序/Java

0.2 希尔排序希尔排序是一个叫希尔的人基于插入排序提出的排序。他最大的优点就是突破了平方级别的运行时间。算法思想:希尔排序引入了一个步长的概念。即将一个数组分为几个小数组,先对小数组进行排序,然后修改步长,在分组排序,直到步长等于1为止。希尔排序是利用了插入排序在“多个有序小数组”“子数组较短”中排序的高效来实现效率提升,每一个小数组都可以看作一个有序小数组。二希尔排序的效率取决于步长的序列,不同的序列具有不同的时间复杂度,所以希尔排序的性能是不确定的,在最好的情况下可以达到O(N)。最坏情况下则

2020-06-16 23:55:47 179

原创 算法之插入排序/JAVA

0.1 插入排序算法思想:插入排序是一种将未排序数据插入到已排好序的数据中的排序算法。例如我们有一个数组为2413,首先我们进行检查,找到比第一个数据2小的元素1,将1插入2的前面,数组变为1243;然后继续进行遍历,我们发现4和3都比2大,不进行插入,继续遍历可以发现3比4小,所以将3插入4的前面,最后变为1234。值得注意的是,插入排序的算法时间与输入数据有关,当我们输入一个有序数组时,我们不需要进行一次插入,,最坏的情况是我们输入一个逆序数据,需要进行N次插入。算法时间复杂度为O(N^2).特点:

2020-06-16 23:53:43 141

原创 算法之选择排序/JAVA

0.0 选择排序算法思想:选择排序,顾名思义是一种通过选择进行排序的算法。其实质是:第一次遍历数组,找到最小的元素和第一个元素互换,然后第二次遍历数组,找到第二小的元素,和第二个元素进行互换。值得注意的是,当我们第二次遍历数组时,如果第二个元素就是最小的,那么他也会和自己进行互换,所以选择排序的运行时间和输入无关。所以当我们输入一个同样长的已经排好序的数组和一个乱序数组的排序时间一样。特点:移动数据少算法所耗时间与数组大小是线性关系时间复杂度:O(N^2)算法实现(只给出sort方法)ub

2020-06-16 23:52:44 114

原创 TCP/IP入土指南

TCP/IP入土指南文章目录TCP/IP入土指南@[toc]1 网络基础知识1.1 协议1.1.1 什么是协议?1.1.2 分组交换协议1.1.3 OSI参考模型1.2 传输方式1.2.1 面向有连接型与面向无连接型1.2.2 电路交换与分组交换1.2.3 广播通信1.3 地址1.3.1 地址的唯一性1.3.2 地址的层次性1.4 网络构成要素2 TCP/IP基础知识2.1 TCP/IP具体含义2.2 互联网与TCP/IP2.3 TCP/IP协议分层模型2.3.1 TCP/IP与OSI参考模型2.3.1

2020-05-31 00:40:54 1929

原创 Spring MVC入土指南

Spring MVC入土指南文章目录Spring MVC入土指南@[toc]1 Spring MVC 简介2 Spring MVC开发2.1 常用注解2.1.1 @RequestMapping注解2.1.2 @RequestParam注解2.1.3 @RequestBody注解2.1.4 @PathVariable注解2.1.5 @RequestHeader注解2.1.6 @CookieValue注解2.1.7 @ModelAttribute注解2.1.8 @SessionAttributes注解2.2

2020-05-25 19:28:03 390

原创 SprintBoot入土指南

SprintBoot入土指南文章目录SprintBoot入土指南@[toc]1. SpringBoot简介2. IDEA搭建SpringBoot环境2.1 Springboot依赖2.2 使用自定义配置3 IoC控制反转3.1 IoC容器3.2 装配Bean方式一方式二3.3 依赖注入3.3.1 @Autowired3.3.2 有参构造方法进行依赖注入3.4 读取配置文件3.4.1 方式一@Value3.4.2 方式二@ConfigurationProperties3.5 条件装配3.6 Spring

2020-05-24 06:03:43 806

原创 Nginx指北

Nginx指北文章目录Nginx指北@[toc]1. Nginx简介1.1 反向代理1.2 负载均衡1.3动静分离2 Nginx常用命令3 Nginx配置文件3.1 配置反向代理1. Nginx简介Nginx是一个高性能Http和反向代理Web服务器。优点:占内存少,并发能力强1.1 反向代理什么是正向代理和反向代理:正向代理:在浏览器中配置代理服务器并利用代理服务器进行对因特网的访问反向代理:浏览器访问反向代理服务器,反向代理服务器向真实服务器获取数据并返回。优点:只暴露代

2020-05-19 16:45:35 146

原创 Mybatis注解开发指北

Mybatis注解开发指北目录文章目录Mybatis注解开发指北@[toc]0. Mybatis注解开发步骤1. 导入相关配置文件2. 配置数据库连接3. 创建数据库对应的实体类(entity)4. 创建实体类对应的Dao/Mapper实现增删改查4.1 Select查询4.1.1 立即加载EAGER和延迟加载LAZY4.2 Insert插入4.3Update更新4.4Delete删除5 创建相应的测试类5.1 使用junit创建测试类0. Mybatis注解开发步骤导入Mybatis、Mysq

2020-05-14 15:25:49 200

原创 立即加载EAGER和延迟加载LAZY

立即加载EAGER和延迟加载LAZY延迟加载和立即加载的区别:顾名思义,立即加载就是在sql语句执行的时候直接从数据库取出数据,而延迟加载就是虽然sql语句执行,但是只有在用到相应的数据的时候才从数据库加载出来。什么时候用延迟加载和立即加载:延迟加载多用于查询一对多的时候,立即加载多用于查询一对一的时候,但并不绝对。为什么要用延迟加载:使用延迟加载的目的是为了减少系统资源的消耗,例如查询课程和选择此课程的学生的时候,当一个课程中只有几十个学生的时候,我们使用延迟加载和立即加载对系

2020-05-14 01:09:04 434

原创 java类型与mysql/sql类型对照表

java类型与mysql/sql类型对照表Java类型SQL类型booleanBITbyteTINYINTshortSMALLINTintINTEGERlongBIGINTStringCHAR,VARCHAR,LONGVARCHARjava.sql.DateDATEjava.sql.TimeTIMEjava.sql.TimestampTIMESTAMP

2020-05-13 01:31:09 325

原创 JavaEE-JavaWeb学习之Servlet篇

HTML&CSS&JavaScript&JQuery之Servlet篇目录HTML&CSS&JavaScript&JQuery之Servlet篇1 Servlet2 创建Servlet3 Servlet生命周期4 通过集成HttpServlet实现Servlet程序5 使用IDEA创建Servlet程序6 Servlet继承体系7 ServletC...

2020-03-14 04:15:20 2362

原创 JavaEE-JavaWeb学习之XML篇

HTML&CSS&JavaScript&JQuery之XML篇目录HTML&CSS&JavaScript&JQuery之XML篇1 XML1.1 语法1.2 元素1.3 属性2 XML的解析技术2.1 Dom4j类库的使用2.2 案例:2.2.1 xml文件2.2.2 book类2.2.3 测试类1 XML什么是XML:可扩展的标记语言作用...

2020-03-11 20:54:33 242

原创 JavaEE-JavaWeb学习之JQuery篇

HTML&CSS&JavaScript&JQuery之JQuery篇目录HTML&CSS&JavaScript&JQuery之JQuery篇1 JQuery技术1.1 JQuery基本介绍1.2 核心函数`$`1.3 JQuery对象和dom对象的区别1.3.1 Dom和JQuery的互相转化1.4 JQuery选择器1.4.1 基本选择器1.4....

2020-03-07 21:37:27 207

原创 JavaEE-JavaWeb学习之JavaScript篇

HTML&CSS&JavaScript&JQuery之JavaScript篇目录HTML&CSS&JavaScript&JQuery之JavaScript篇1 JavaScript介绍1.1 JavaScript与Html的结合1.1.1 方式一1.1.2 方式二1.2 变量1.3 关系运算1.4 逻辑运算1.5 数组1.6 函数1.6.1 隐形参...

2020-03-05 01:41:50 877

原创 JavaEE-JavaWeb学习之CSS篇

HTML&CSS&JavaScript之CSS篇目录HTML&CSS&JavaScript之CSS篇1 CSS技术1.1 css语法规则1.2 css和html的结合1.2.1 方式一1.2.2 方式二1.2.3 方式三1.3 css选择器1.3.1 标签选择器1.3.2 id选择器1.3.3 类型选择器1.3.4 组合选择器1.4 常用样式1 CSS技术C...

2020-03-04 03:42:02 555

原创 JavaEE-JavaWeb学习之HEML篇

HTML&CSS目录HTML&CSS1 HTML、CSS和JavaScript的分工2 HTML书写规范2.1 新建HTML工程2.2 html书写规范3 标签3.1 基本语法3.2 常用标签1 HTML、CSS和JavaScript的分工html负责网页的骨架css负责页面元素的样式JavaScript负责响应用户操作2 HTML书写规范2.1 新建HTML工程...

2020-03-04 00:18:36 405

原创 如何用IDEA创建一个HTML工程?2020最新版

如何用IDEA创建一个HTML工程?2020最新1创建一个html项目新建工程新建HEML5文件创建成功

2020-03-03 20:35:06 19827 7

原创 Linux-Centos7常用命令/Linux复习

2020年Linux学习最全知识点目录2020年Linux学习最全知识点1 常用命令2 目录结构3 命令1 常用命令关机shutdown -h now:正常关机,now改成其他参数(hutdown -h 10:10分钟后关机)即为定时关机halt :关闭内存init 0:7以后无法使用重启reboot:正常重启shutdown -r now:正常重启,now改成其他参数...

2020-03-03 16:21:40 326

原创 Linux中的Vi和Vim操作方法/学习笔记

Linux中的Vi和Vim操作方法/学习笔记目录Linux中的Vi和Vim操作方法/学习笔记1 什么是vi和vim2 vi和vim的三种模式3 用vim写入第一个文件4 常用的快捷键(==一般模式==)5 其他快捷键(了解)1 什么是vi和vimvi是Linux中内置的文本编辑器,vim具有程序编辑的能力,是vim的增强。2 vi和vim的三种模式正常模式:在正常模式中可以使用...

2020-03-02 03:41:09 436

原创 JDBC知识点/第六部分Apache-DBUtils实现CRUD操作

2020最新JDBC学习路线,最全的JDBC知识点/第六部分Apache-DBUtils实现CRUD操作写在前面:本博客是JDBC第一部分,JDBC学习路线目录为:JDBC总目录欢迎大家一起讨论,如有错误,敬请指正目录2020最新JDBC学习路线,最全的JDBC知识点/第六部分Apache-DBUtils实现CRUD操作6 Apache-DBUtils实现CRUD操作6.1 什么是Apac...

2020-02-26 21:50:40 307

空空如也

空空如也

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

TA关注的人

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