自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

分享各种技术

分享各种技术

  • 博客(46)
  • 问答 (5)
  • 收藏
  • 关注

原创 一文讲清MySQL的innodb_log_write_ahead_size参数

一文讲清MySQL的innodb_log_write_ahead_size参数MySQL调优的时候会遇到一个参数innodb_log_write_ahead_size,这个参数如果对计算机存储系统不了解的话很难理解,网上很多文章说的又不是很清晰,所以本文对该参数做一个解析;要想知道innodb_log_write_ahead_size参数怎么配置,最重要的就是先了解这个参数解决了什么问题,那么这个参数是解决什么问题的呢?官网对该参数的描述如下:Defines the write-ahead blo

2021-05-08 19:54:33 1892 8

原创 由httpclient bug导致的生产问题

记一次因为httpclient bug导致的生产故障

2025-07-02 19:00:58 850

原创 揭秘99%程序员都不懂的CPU神秘机制,掌握它让你的代码性能暴增10倍!

摘要:计算机中断机制详解 中断是现代计算机系统的核心机制,它能大幅提升系统性能,避免CPU轮询设备带来的资源浪费。中断分为三类:异常(CPU内部事件)、硬中断(外部设备请求)和软件中断(程序主动触发)。其中异常又细分为可恢复的故障、用于调试的陷阱和不可恢复的终止。 x86架构通过8259 PIC和APIC控制器管理中断,支持256个中断向量。现代操作系统利用中断实现进程调度、设备驱动、系统调用等功能。在虚拟化环境中,中断处理更加复杂,需要虚拟化技术支持。 高效中断处理应遵循最小化执行时间、避免死锁等原则。

2025-06-20 20:58:21 966

原创 万字长文爆肝 | 1MB到4GB,一文带你看懂x86内存管理的技术革命

摘要: 本文系统梳理了x86架构内存管理技术演进历程,从8080线性寻址到80286保护模式的重大变革。重点剖析了实模式"段:偏移"寻址机制(物理地址=段寄存器×16+偏移)及其1MB内存布局,解释了A20地址线的关键作用。保护模式引入GDT全局描述符表和特权级机制,详细解析了段描述符结构(Base/Limit/Access Byte/Flags)和GDTR寄存器配置,实现了内存保护与16MB寻址能力。文章通过汇编代码实例(如视频内存访问、A20开启)生动展示了技术细节,为读者构建完整的

2025-06-14 19:34:58 862

原创 揭秘保护模式:CPU如何筑起操作系统的安全防线

保护模式是现代操作系统的安全基石,它如何防止程序越权、保护内存安全?从实模式的脆弱到虚拟内存的强大,本文深入解析CPU的权限分级与内存保护机制,带你揭开操作系统背后的神秘护盾!立即了解,让你秒懂系统安全!

2025-05-29 22:15:45 620

原创 别再只会读文件了,操作系统是这样读磁盘的!

你以为硬盘像文件夹一样打开,其实它靠“瞎写寄存器”读数据?操作系统的启动,不是你想象的双击图标——而是BIOS手动读磁盘扇区,靠几条汇编和10个神秘端口完成“开天辟地”。本文教你用最原始的方式亲手从硬盘读出操作系统!

2025-05-23 21:21:13 653

原创 你可能从未想过的开发环境构建

如果对于wsl和Ubuntu已经很熟悉了,可以不必浪费时间继续看了,如果你用的是mac或者已经在用Linux办公了,也可以跳过本文章;对于一个开发,在拿到电脑后,做的第一件事大概就是开发环境的搭建吧,虽然对于一个资深开发,开发环境的搭建是手到擒来,但是从开机到完全可用最少也要半天过去了,那有没有能快速搭建环境的方法呢?本文主要介绍wsl的方式搭建,记录下使用过程中遇到的一些问题和解决方法。

2025-05-23 21:18:32 726

原创 mybatis-plus缓存bug分析

前段时间在使用mybatis-plus的过程中,发现了一些bug(最新版本均已修复),现在分享一下;

2025-03-23 16:48:45 1232

原创 如何快速拥有自己的AI

带你快速了解AI,使用AI,部署一套属于自己的AI

2024-12-20 20:02:21 1026

原创 idea插件开发之bean复制插件

开发一个提高生产力的小工具

2024-09-05 20:33:13 1165

原创 由JDK bug引发的线上OOM

最近生产环境的一个应用忽然发生了OOM,还好是业务低峰期,没有导致什么严重问题,下面记录下本次排查的过程;

2023-08-25 09:35:44 372

原创 feign-eureka-ribbon的协作原理

一文带你了解feign、ribbon、eureka的协作原理

2023-04-09 16:58:02 376

原创 操作系统系列-序

从零写一个操作系统

2023-03-07 13:37:16 246

原创 使用了lombok后如何生成正确源码包

解决使用了Lombok后IDEA下载源码提示Library source does not match the bytecode for class

2022-09-06 17:36:45 1387

原创 常见问题排查

通过固定方法排查各种常见问题,形成自己的问题排查方法论

2022-09-06 11:42:57 466

原创 java服务器调试指南

快速学会Java服务器调试

2022-07-27 09:36:59 993 2

原创 关于证书,这里有你想知道的一切

在HTTPS开发中,你是否被各种证书搞得晕头转向?.pem证书?.der证书?X.509证书?本文带你理清这些证书叫法背后的含义;

2022-05-21 17:07:46 838

原创 k8s中部署traefik并开启https支持

k8s中部署traefik并开启https

2022-05-17 15:16:21 2635 2

原创 ESP8266 RTOS开发环境搭建

ESP8266 RTOS开发环境搭建

2022-04-07 21:55:40 2980

原创 MySQL驱动中关于时间的坑

什么,我的日期存到数据库怎么慢了14个小时?!!!

2022-02-26 17:02:27 836

原创 2FA双因子认证之OTP算法

2FA双因子认证之OTP算法概述2 Factor Authentication简称2FA,双因子认证是一种安全密码验证方式。区别于传统的密码验证,由于传统的密码验证是由一组静态信息组成,如:字符、图像、手势等,很容易被获取,相对不安全。2FA是基于时间、历史长度、实物(信用卡、SMS手机、令牌、指纹)等自然变量结合一定的加密算法组合出一组动态密码,一般每60秒刷新一次。不容易被获取和破解,相对安全。TOTP/HOTP作为其中的一种(实际是两种,不过其中一个是变种,这里当作一种)算法,目前已经用于

2022-01-24 15:16:42 2055

原创 HMAC算法

消息认证算法之HMAC,详细剖析HMAC算法,文末附有示例代码

2022-01-22 16:57:50 3906

原创 SHA1算法详解

SHA1算法详解SHA1算法作为摘要算法的一种,被使用于各种签名、摘要等场景,本章我们详细分析下SHA1算法细节;术语定义 word:32bit的String,可以表示为8个16进制的序列,例如A103FE23; integer:表示0-2^32-1之间的数字; block:表示512bit的String,一个block可以表示为16个word的序列(数组); 消息填充规则对于待摘要的消息M,先填充一个bit 1,然后填充N个bit 0,最后填充64b.....

2022-01-15 14:18:18 7276 4

原创 JDK17都出来了,你还在用JDK8?

JDK17的一些新特性本文旨在介绍一些JDK17的新特性,同时限于篇幅,本文仅列举其中一些差异,而不是全部差异;PS: JDK17是Java的一个LTS版本(长期支持版本),可以放心迁移过来;instanceofJDK8中的语法:Object o = something;if (o instanceof String) { String str = (String)o; // do something}在JDK17中我们可以这样写:Object

2022-01-08 11:13:40 1992

原创 ZIP(32位)文件格式详解

ZIP文件格式详解

2022-01-01 22:27:09 4373

原创 如何打包SoftEtherVPN

构建环境搭建> SoftEtherVPN地址:https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.gitSoftEtherVPN的构建环境搭建(Dockerfile):```FROM centos:7RUN yum install -y epel-release.noarch \ && yum update -y \RUN yum -y groupinstall "Development Tools" \..

2021-11-12 14:07:42 1638

原创 一文读懂rabbitMQ和rocketMQ的消息可靠性机制

一文读懂rabbitMQ和rocketMQ的消息可靠性机制在我们大多数场景中,MQ消息都要保证可靠性,消息可靠性应该是我们最关心的一个细节,没有之一;而各个MQ实现的可靠性保证都不同,同时实现机制也不同,只有知道各个MQ实现是如何保证消息可靠性的,才能在使用的过程中不丢消息;rabbitMQ对于rabbitMQ,消息可靠性是从以下几点来保证的:消息持久化; 发布者确认;消费者确认;消息持久化对于rabbitMQ,默认情况下消息是不持久化的,这是为了性能考虑,

2021-11-10 15:43:40 2771

原创 通过局域网中间人攻击学网络第五篇

通过局域网中间人攻击学网络 续续 HTTPS篇2抓包环境本章开始分析握手包,分析过程中会涉及抓包,为了尽可能方便,后续都采用对百度的抓包,工具;wireshark,使用过滤条件(不过滤的话包太多不好找):tls.handshake.extensions_server_name == ss2.baidu.comRecord数据结构HTTPS中数据都是通过Record层进行包装的,Record的数据结构如下:public class Record <T>{ /*.

2020-12-30 16:21:42 531

原创 通过局域网中间人攻击学网络第四篇

通过局域网中间人攻击学网络第四篇HTTPS篇1Abstract最近因为个人原因停更有段时间,后边会慢慢恢复更新;前三篇基本把局域网中间人攻击的原理介绍了一下,根据前三篇我们可以做一个简易的工具来实现局域网攻击了,但是攻击过程中你可能会发现一个问题,当前大多数 网站都已经采用HTTPS链接了,这样会导致你抓到的数据都是加密过的,没办法查看、修改,那搞中间人攻击干啥呢?抓包抓了个寂寞吗?要解决这个问题,我们首先 要清楚HTTPS是什么;什么是HTTPS,HTTPS解决了什么问题?要了

2020-11-13 21:33:18 463

原创 通过局域网中间人攻击学网络 第三篇 netfilter之内核篇

通过局域网中间人攻击学网络第三篇 netfilter框架之内核篇在第二篇中,我们讲到可以用ARP欺骗的形式将局域网内某个主机的流量转发到我们的机器上,那我们如何对该流量进行拦截修改呢?在Linux下,我们可以 使用netfilter框架来实现对ip数据拦截修改;什么是netfilter?Netfilter是Linux 2.4.x引入的一个子系统,它作为一个通用的、抽象的框架,提供一...

2020-04-12 21:08:46 799 1

原创 通过局域网中间人攻击学网络 第二篇 ARP欺骗

通过局域网中间人攻击学网络第二篇 ARP欺骗原理我们要进行中间人攻击,就要将自己的主机插入到被攻击主机与被攻击主机要访问的主机之间,拦截他们的流量,到自己的主机然后转发,如下图所示:只需要将被攻击者的流量转发到我们的机器上我们对其代理,我们就可以对其修改了,那么现在又有新问题了,如何去代理被攻击者的流量呢?因为是我们 要攻击对方的,所以不太可能让被攻击者主动设置将流量转发到我...

2020-03-28 21:31:05 769 2

原创 通过局域网中间人攻击学网络

通过局域网中间人攻击学网络序言声明该文章为系列连载文章,由于作者目前工作较忙(懒),所以预期一周更新一篇; 作者目前主要从事Java开发,所以后续涉及部分C代码的,可能会比较菜,不符合各种规范,请见谅; 本系列文章仅供学习使用,请勿用作非法途径; 想要深入交流或者吐槽作者的,可以加作者微信,作者微信:qiao1213812243;学习本系列文章前我需要有什么样的基础简单的C...

2020-03-21 19:43:38 807

原创 java基础类型的装箱拆箱

java基础类型的装箱拆箱通过本文能了解哪些知识?为什么基本数据类型拆箱有可能会报空指针异常? 基本数据类型的装箱与拆箱操作是如何实现的?自动拆箱首先我们有如下代码:public class Test{ static { Integer integer = new Integer(1234); int i = integer; ...

2019-11-12 20:01:17 228

原创 异常警告之-ConcurrentModificationException

异常分析相信写过一些Java代码的人都遇到过这个异常,一般都是由以下代码引起的:import java.util.List;import java.util.ArrayList;public class Test{ public static void main(String[] args){ List<String> list = new Arra...

2019-11-12 19:53:38 485

原创 网络协议之HTTP-CORS

什么是CORSCORS是通常所说跨域请求的英文简称,全称Cross-Origin Resource Sharing。浏览器出于安全考虑会禁止使用跨域请求,而使用CORS技术可以突破 该限制。注意:浏览器限制仅限于脚本请求不能跨域,例如在js中用ajax请求,如果跨域会被拦截,但是对于标签是可以跨域的,例如使用img标签来跨域请求一个 图片资源,用script标签来跨域请求一个脚本资源。JS...

2019-11-12 19:45:42 457 1

原创 高效搜索数据结构之红黑树简介

之前介绍java中的HashMap时有说到过红黑树,今天就来讲讲红黑树。首先学习红黑树之前要了解二叉树以二叉搜索树。二叉树是一种基本的数据结构,本身结构也很简单,结构如下图所示:图(1)上图所示就是一个简单的二叉树,每个节点都最多有两个子节点(可以为空),每个节点最多有一个父节点(根节点没有父节点),其中1就是根节点。而二叉搜索树就是

2018-02-05 16:54:51 328

原创 多线程概述

多线程概述由于CPU核心越来越多,现代编程中总少不了多线程,而多线程编程在java中是比较容易的,这也算是java的一大优势。多线程编程,总避不开一个话题,那就是线程安全。那么,如何保证线程安全呢?可能很多人第一时间想到的就是锁,是的,锁是一个很好的解决方案,那么有没有更好的方案呢?答案也是有的。那么,不用锁如何做到线程安全呢?首先我们需要了解,为什么会有线

2018-02-05 16:50:44 340

原创 如何打造一个百万用户的IM后台(1)

如何打造一个百万用户的IM后台(1)聊天应该是当代人使用频率最高的软件,相信很多java使用者在初学java中socket部分时也会自己写一个聊天软件服务器。那么,如何才能写一个能够提供百万并发能力的IM后台呢?1问题分析要想写一个百万并发的IM后台,首先得知道将要面临什么样的问题,首先是IO模型,传统的BIO模型是肯定不行的,那么就只能使用NI

2018-02-05 16:49:25 5465

原创 由一个死循环引出的一系列问题及思考

一次粗心引起的死循环场景一次系统升级中,需要修改一个需求,而这个需求需要修改一个for循环的次数,原循环如下:for(byte i = 0 ; i 30 ; i++){ //do something}而修改后如下:for(byte i = 0 ; i 300 ; i++){ //do something

2018-02-05 16:45:30 394

原创 如何优雅的写代码

如何优雅的写代码为什么别人的代码看起来那么优美,而我的代码就像一坨翔?相信很多新人都会有这样的疑问吧,看各种框架的代码看着感(根)觉(本)特(看)别(不)溜(懂),而自己写出来的代码怎么看怎么不顺眼,为什么呢?规范!!!规范!!!规范!!!是的,一切都是规范问题,如果你看各种框架代码看得多了你会发现,他们好像大都是一个套路,一个说不上来的套路,看起来就很舒服

2018-02-02 23:29:24 4578 5

FlyClockV5.7.0.exe

FlyClockV5.7.0.exe

2022-12-17

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

TA关注的人

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