自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

跑码场

每天进步一点点

  • 博客(156)
  • 资源 (2)
  • 收藏
  • 关注

原创 什么是IO多路复用

本篇文章为BIO与阻塞IO的续篇,详细介绍了select、poll以及epoll等多路复用组件的使用方法以及底层原理。尤其详细分析了epoll的源码,做到一篇文章完全搞懂I/O多路复用模型

2023-02-02 09:54:06 248

原创 让ChatGPT做当年的高考现代文阅读

我让ChatGPT做一道当年的高考现代文阅读题,看看能得几分

2023-02-15 11:16:30 4321 1

原创 同步异步、阻塞非阻塞怎么区分

同步异步、阻塞非阻塞到底怎么区分?IO多路复用是同步IO还是异步IO?有没有异步阻塞IO?

2023-02-06 10:28:01 525 2

原创 一文说透BIO以及非阻塞IO

高效的网络模型是Redis实现高吞吐量的重要底层支撑,是“高性能”的重要原因,却不是“快”的直接理由。本文将从BIO开始介绍,经过NIO、多路复用,最终说回Redis的Reactor模型,力求详尽。

2022-12-27 11:01:01 444

原创 MySQL锁,锁的到底是什么

MySQL锁是解决资源竞争的一种方案。短短一句话却包含了3点值得我们注意的事情:1.对什么资源进行竞争?2.竞争的方式(或者说情形)有哪些?3.锁是如何解决竞争的?这篇文章开始带你循序渐进地理解这几个问题。

2022-12-02 22:39:13 1353

原创 2>&1到底是什么意思?

大部分人都知道`>`表示的是重定向,那么什么是重定向?`2>&1`又是什么意思?要从根儿上说明这个问题,我们有必要好好理解一下「文件描述符」的概念。

2022-09-25 10:07:35 3807

原创 CPU流水线与指令重排序

本来`synchronized`和`volatile`关键字用得好好的,我非要深入研究一下他们的原理,所以研究了内存屏障,又研究了和内存屏障相关的`MESI`,又研究了`Cache Coherence`和`Memory Consistency`,发现一切问题都出在CPU身上。于是又惊叹Java一次编写到处运行的特性,最终又研究到`JMM`。说是研究,其实就是把学习过程中自己抛出来的问题解决掉,把所有知识穿成一条线罢了。这条线的线头就从指令的乱序执行开始了。

2022-09-06 08:08:27 688

原创 从0到1写一款自动给Markdown标题添加序号的Jetbrains插件

从0到1开发一款自动为Markdown文件标题添加序号的Jetbrains插件,已上线

2022-08-29 09:39:31 753 9

原创 我是一个垃圾

哒哒哒…回收者的脚步声越来越清晰,我竭力锁紧身体让自己别那么引人注目,尽管气喘吁吁,但我仍然压抑住自己的呼吸。终归是藏不住的,但是多活个几毫秒也是好的,我们都这么想。因为回收者是来杀我们的。...

2022-08-26 09:54:01 203 1

原创 M1芯片电脑安装cerebro

m1芯片电脑安装cerebro

2022-07-29 08:12:52 521

原创 缓存一致性MESI与内存屏障

计算机的演进就是一部在挖坑和填坑之间反复横跳的发展史。对这一点的理解会随着本文的后续讲述逐渐加深。比如高速缓存Cache很好地解决了CPU与内存的速度矛盾,但是也为计算机系统带来了更高的复杂度。...

2022-07-27 07:59:37 1849 14

原创 推荐一款M1电脑可用的虚拟机软件

推荐一款适合M1芯片电脑的快速搭建集群环境的虚拟机软件

2022-06-22 10:15:03 3687

原创 Google搜索为什么不能无限分页?

当我用Google搜索`MySQL`这个关键词的时候,Google只提供了`13`页的搜索结果,我通过修改url的分页参数试图搜索第`14`页数据,结果出现了以下的错误提示

2022-06-09 14:42:22 820 3

原创 用闪电侠的例子解释一下进程和线程

用闪电侠举个例子,给你解释一下进程和线程

2022-05-19 10:41:44 227

原创 事务的隔离级别与MVCC

提到数据库,你多半会联想到事务,进而还可能想起曾经背得滚瓜乱熟的ACID,不知道你有没有想过这个问题,事务有原子性、隔离性、一致性和持久性四大特性,为什么偏偏给隔离性设置了级别? 一切还得从事务说起。

2022-04-21 07:50:16 660 1

原创 MySQL优化的5个维度

面试官如果问你:你会从哪些维度进行MySQL性能优化?你会怎么回答?所谓的性能优化,一般针对的是MySQL查询的优化。既然是优化查询,我们自然要先知道查询操作要经过哪些环节,然后思考可以在哪些环节进行优化。

2022-04-06 07:45:05 820

原创 到底为什么不建议使用SELECT *?

“不要使用SELECT *”几乎已经成为了MySQL使用的一条金科玉律,就连《阿里Java开发手册》也明确表示不得使用`*`作为查询的字段列表,本文从4个方面给出理由。

2022-03-26 22:31:18 7494 6

原创 xx.jar中没有主清单属性

pom文件里添加这个插件 <build> <plugins> ... <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId>

2022-03-14 10:59:45 224

原创 图解|带你彻底搞懂MySQL的索引

这篇文章会让你明白什么是索引,彻底理解B+树和索引的关系;彻底理解主键索引、普通索引、联合索引;了解什么是HASH索引,InnoDB和MyISAM索引的不同实现方式;轻松理解后续的索引使用规则。

2022-03-11 09:09:46 423

原创 后端开发者的M1芯片电脑开发环境搭建

java后端开发,从头开始配置M1芯片笔记本的开发环境

2022-03-03 09:18:44 2271 2

原创 637道Java面试题(含答案)

637道Java面试题(含答案),涵盖Java基础、Java并发、Spring、Spring Boot等多方面面试要点

2022-03-01 08:45:12 1464

原创 mac下配置VSCode的C语言开发环境

手把手教你配置VSCode下C语言开发环境

2022-02-28 10:53:57 5617 1

原创 盘点那些年让人抓狂的计算机术语翻译

搞技术的人不会说人话是个天大的问题。接下来给大家盘点一下学习计算机的过程中遇见的那些让人抓狂的计算机术语翻译。

2022-02-28 08:33:54 587 1

原创 图解|12张图解释MySQL的主键查询为什么这么快

什么是InnoDB行格式?InnoDB页是什么? InnoDB页和InnoDB行格式都有哪些字段信息? 为什么推荐使用自增ID作为主键,而不推荐使用UUID? InnoDB设计者如何设计高效算法,快速在一个页中搜索记录。

2022-02-25 12:31:34 617 2

原创 IDEA一键部署SpringBoot项目到服务器

还在用FTP工具上传jar包然后启动?教你使用IDEA一键部署SpringBoot项目

2022-02-23 13:20:32 1763

原创 VSCode官方的配置同步方案

这几天在迁移电脑工作环境,对于VSCode,我实在不想从头做下载插件、配置代码规则这样的事情,决定再写一篇VSCode配置同步的文章。

2022-02-20 10:55:54 2876 1

原创 再也不用担心重装VSCode了

告别重装VSCode需要重新配置的烦恼

2022-02-19 12:40:12 1415 1

原创 Sync: GitHub 令牌无效或已过期。请重新生成。

找到Settings Sync插件的配置文件所在位置点击插件按钮,找到Settings Sync这个插件,点击右下方的齿轮点击Extension Settings按钮,右侧出现所有配置项选择Extensions——Code Settings Sync,出现该插件的所有可视化配置点击右上角的Open Settings(JSON)按钮,看图中我圈出来的部分,就是VScode的配置文件所在目录了进入Code/User目录,和settings.json文件同级的有个syncLocalSet.

2022-02-19 08:57:54 896 5

原创 docker无法启动redis容器的坑

如果你的docker无法启动redis,甚至连个错误提示都没有?检查一下你启动容器的指令是不是加了-d这个参数,如果添加了,那么redis.conf文件中的daemonize必须设置为no,否则容器无法启动daemonize no...

2022-02-18 15:12:30 2646 2

原创 鸡肋的Redis事务

你会了解Redis为什么要提供事务? Redis事务基本指令和使用方法;CAS乐观锁是什么?Redis事务为什么不支持回滚?

2022-02-16 16:14:54 526

原创 Redis与数据库的数据一致性

当数据库内容变化的时候,到底应该先操作数据库还是先操作缓存呢?本文带你了解如何解决Redis和数据库的数据一致性问题

2022-02-15 06:15:00 2862 3

原创 Redis基本数据结构

包括Redis5种基本数据类型:String、List、Set、ZSet、hash

2022-02-12 20:17:59 62

原创 控制反转,依赖注入,依赖倒置傻傻分不清楚?

通过这篇文章,你将了解到控制反转(IoC)是什么?「反转」到底反转了什么? Spring和IOC之间是什么关系? 依赖注入(DI)和依赖倒置原则(DIP)又是什么?IOC、DI和DIP有什么关系?

2022-02-11 09:55:00 601

原创 七大软件设计原则之一 | 开闭原则

我举一个例子,陀螺是个程序喵,创办了一个生产猫粮的公司——跑码场,手下有个小徒弟叫招财,写了一个下单的逻辑。

2022-02-09 14:26:20 847

原创 Node的灵魂——非阻塞异步IO

公众号「蝉沐风」,关注我,获取更多编程知识我们以网络请求IO为例,首先介绍服务端处理一次完整的网络IO请求的典型流程:应用程序获得一个操作结果,通常包括两个不同的阶段:等待数据准备好从内核向进程复制数据以下,我们以 recvfrom 函数为例,解释说明各种IO模型阻塞式 I/O 模型(blocking I/O)阻塞调用是指调用结果返回之前,当前线程会被挂起,调用线程只有在等待系统内核层面所有操作完成之后,调用才会结束。阻塞I/O造成了cpu的等待I/O,浪费了CPU的时间片.

2022-02-07 07:59:15 802

原创 什么是倒排索引

传统的索引是文档ID到文档内容、单词的关联关系。我们平常读的书的目录就是传统索引的典型代表。而倒排索引(Inverted index)恰好相反,是单词(分词)到文档ID的关联倒排索引(Inverted Index)是实现单词-文档矩阵的一种具体存储形式(除此之外还有签名文件、后缀树等数据结构),通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。基本概

2022-02-06 16:03:41 1516

原创 一条SQL更新语句是如何执行的

这篇文章会通过一条SQL更新语句的执行流程让大家清楚地明白:什么是InnoDB页?缓存页又是什么?为什么这么设计?什么是表空间?不同存储引擎的表在文件系统的底层表示上有什么区别?Buffer Pool是什么?为什么需要?有哪些我们需要掌握的细节?MySQL的三种日志文件redo日志、undo日志、binlog分别是什么?为什么需要这么多种类型的日志?

2022-02-05 19:27:56 673 1

原创 一条SQL查询语句是如何执行的?

一条SQL查询语句是如何执行的。看不完还不知道,过来打我吧

2022-01-26 22:46:02 1856 4

原创 看完这篇文章,你不可能不懂「动态代理」

虽然学会了静态代理,但是招财这几天仍然是有些闷闷不乐,因为始终没有想出上次陀螺留给自己的问题的解决思路。​如何为任意对象的任意方法前后添加同一个处理逻辑?手动为每一个对象的每一个方法中添加同一段代码逻辑是不可能的,这辈子都不可能的。「懒」是科技进步的重要动力!​思考未果,招财终于要求助陀螺了。捉襟见肘的静态代理“师傅,你上次留给我的问题我没想通。这种需求的现实意义在哪儿呢?”招财开门见山。​陀螺说:“如果真的能在任意方法前后添加自己的逻辑,那作用可就太大了!你可以在逻辑运行之前先校验操

2022-01-21 17:33:12 344

原创 [email protected]: Permission denied (publickey). Could not read from remote repository.

1. 问题背景之前使用https形式的git操作一直没有问题,后来改为了ssh的方式,然后就给我提示[email protected]: Permission denied (publickey). Could not read from remote repository.2. 问题原因原因是因为改用了ssh的方式进行git操作3. 解决方法解决方式就是在本地生成(如果没有的话)ssh秘钥,添加到github账户中。以下操作适合Linux和Mac系统,Windows用户按照步骤修改相应操作

2022-01-15 08:40:03 1461

M1芯片电脑-Java-查看汇编指令的文件

M1芯片电脑-Java-查看汇编指令的文件

2022-06-17

C产生正态分布随机数(高效版Ziggurat Method)

C程序生成正态分布随机数

2017-07-17

空空如也

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

TA关注的人

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