自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 可能是最适合新手看的HashMap源码分析

本文首发于个人博客前言HashMap使用键值对的存储结构。其底层使用数组实现,应用链地址散列法,并配合红黑树,实现了高效的查找逻辑。本文的HashMap源码基于jdk1.8。源码解析变量下文经常提到的桶就是其实就是table数组中的任意一个位置这里变量的含义不理解没关系,看完后面的方法调用就知道了//table的初始容量16static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;//最大容量static final int MA

2021-02-21 10:24:50 140

原创 JAVA优先队列PriorityQueue详解 逐行注释

本文首发于个人博客,欢迎来访前言优先队列是JAVA以堆排序为基础实现的数据结构,这种结构在删除或新增元素后,会自动进行重排,非常方便。本文分析优先队列中的常用方法源码来加强理解。堆排序所谓堆,是一种完全二叉树。如果这颗树的父节点值大于等于子节点值,则称为大顶堆。如果父节点值小于等于子节点,则成为小顶堆。算法1、将序列中的n个元素构造成堆2、堆顶与序列末尾元素交换,这样末尾元素就成了整个序列的最大(最小)值3、对当前序列的前n-1个元素重复1和2有关堆排序的详解可以参考这篇文章。源码解析

2021-02-15 22:29:36 303 1

原创 天天都用浏览器的你知道输入网址后发生了什么吗?

本文首发于个人博客前言浏览器是如今必不可少的工具之一,每天都有无数人通过浏览器获取自己需要的信息。那么当你在浏览器中键入一行网址后究竟发生了什么?我们下面一起捋一捋。图解具体分析DNS解析所谓解析就是把方便人类记忆的域名翻译成计算机的ip地址。比如输入的url是www.baidu.com,首先在本地域名服务器中寻找ip地址,如果没找到,本地域名服务器会请求根域名服务器寻找,如果还是没找到,本地域名服务器会请求com顶级域名服务器,如果还找不到,那么本地域名服务器继续请求baidu.com域服

2021-02-13 22:23:05 609

原创 TCP的三次握手和四次挥手详解

本文首发于个人博客基本特点面向连接的可靠字节流服务。建立连接——三次握手TCP建立连接时,需要经历下图所示的三次握手过程。每一次握手都可以反映出不同的信息。第一次握手SYN标志提示TCP连接的服务端检查序列编号(seq),该序列编号为TCP连接初始端(一般是客户端)的初始序列编号。客户端通过SYN=1来告诉服务端它想要建立连接。SYN=1的报文段不携带数据,但是也要消耗一个序号。seq是基于时钟生成一个序号,每4微秒加1,到2^32-1时又从0开始。tcp提供全双工服务,客户端和服务端都

2021-02-12 19:43:30 243

原创 一张图秒懂JVM中的对象创建过程

<hr><p>title: 一张图秒懂JVM中的对象创建过程tags:</p><ul><li>JVMabbrlink: 9f80d882date: 2020-11-29 20:07:55<

2020-12-18 21:09:06 189 1

原创 一文秒懂String对象的那些事

<hr><p>title: 一文秒懂String对象的那些事abbrlink: b685e237date: 2020-12-16 21:55:48tags:</p><hr><p>本文首发于

2020-12-18 21:05:20 177 1

原创 一张图秒懂JVM内存区域的划分

<hr><p>title: 一张图秒懂JVM内存区域的划分tags:</p><ul><li>JVMabbrlink: 7df7aca7date: 2020-12-06 16:18:45</

2020-12-07 22:58:40 370

原创 还在纠结接口请求用Put还是Post?看这篇就够了

当我们写后台项目时,每个API都需要指定请求方法。常用的方法有Get,Post,Delete,Put等。通常,新增资源时,我们会使用Post方法。而更新时,有人习惯用Post,有人习惯用Put。那么究竟哪种方法更准确呢?让我们先来看一张图。图片来自维基百科 Hypertext Transfer Protocol词条从图中可以看出,Post方法是非幂等(idempotent)的,而Put则是幂等的。让我们再来看看对幂等的解释:Methods PUT and DELETE are defined to

2020-06-21 12:14:36 10884

原创 Springboot项目中Redis的简单使用

简介Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。——维基百科安装与配置安装首先到github上下载你需要的版本 下载地址下载之后的文件解压缩,复制到安装目录。本文以D:/redis为例。在安装目录中双击打开redis-server.exe,出现如下字样,代表启动成功。[15008] 14 Mar 10:09:21.250 # Se...

2020-03-15 18:55:09 94

原创 vue项目部署

vue项目部署到centos7服务器最近因为自己想自己做个网站练手,所以第一次接触了项目部署,网上查的博客中很多都不适合我这样的纯新手。所以自己记录一下爬坑过程,供人参考。项目build生成静态文件首先将写好的vue项目打包npm run build打包后可以看到项目中多出一个dist文件夹,其中包含了一个static文件夹和index.html页面将dist文件上传到服务器使用x...

2020-03-15 18:48:19 167

原创 SpringBoot使用Swagger生成API文档

简介Swagger是一种REST APIs的简单但强大的表示方式,标准的,语言无关,这种表示方式不但人可读,而且机器可读。可以作为REST APIs的交互式文档,也可以作为REST APIs的形式化的接口描述,生成客户端和服务端的代码。使用引入依赖 <dependency> <groupId>io.springfox</groupId> ...

2020-03-15 18:40:49 119

空空如也

空空如也

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

TA关注的人

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