自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序猿周周的博客

一个伪代码的成长之路

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

原创 深入浅出Java线程池Worker类

本文将以线程池 ThreadPoolExecutor 中成员变量的分析,了解到Runnable、Worker、Thread 以及 BlockingQueue 在线程池中的关系。然后以任务提交 `sumbit()` 函数作为入口,探究了线程池中线程的创建、执行以及保活的实现,对线程池的工作流程和原理也有了很好的理解。

2023-03-29 22:51:28 1633 1

原创 几种常见的API接口分页方案

列表是互联网产品中很常见的一种内容排列形式,而且列表的数据集往往成千上万,一次性返回全量数据集的场景几乎不存在,所以出现了数据分页的需求。本文将总结常见的列表样式以及接口分页设计相关问题。

2023-03-26 17:46:18 4266

原创 面试官:能否说出九种常见的分布式事务解决方案?

说到事务想必大家一定都不陌生,日常使用最多的也是关系型数据库总的本地事务以保证业务中的一些强一致性操作。但随着行业的高速发展,业务益加复杂化,分布式或者微服务成为了大家的公认选择,但随之而来的就是一个大难题:如何在分布式系统中保持各节点的状态一致,即实现分布式事务?

2023-03-04 21:07:14 942

原创 面试官:你能说出几种常见的限流算法?

限流其实在我们的生活中很常见,例如节假日的热门景区就会通过限售的方式限制景区的容纳游客数量。而在我们的系统服务中,也往往会采取一定措施限制到达系统的并发请求数,使得系统能够正常地处理部分用户的请求,从而保证系统的稳定性。当然这样的举措不可避免的会造成用户的请求变慢甚至被拒的情况,影响用户体验。因此,限流需要在用户体验和系统稳定性之间做一个平衡。

2023-02-28 09:15:00 505

原创 Java虚拟机之类加载学习总结

Java 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形可以被虚拟机直接使用的 Java 类型,这个过程被称作虚拟机的类加载机制。实现自定义类加载器一般分为两步:一是继承;二是重写父类的方法。defineClass():将一个字节数组转换为 Class 类的实例;loadClass():根据全限定类名找到类,推荐自定义类加载器重写,而不是当前方法。实际上,即使我们按如上方法自定义了类加载器,也无法使用自定义类加载器。分析内部调用父类的无参构造函数。

2023-02-25 16:46:12 652

原创 既然有了ES,为何还用ClickHouse——从原理万字总结ClickHouse为何这么快

ClickHouse全称 Click Stream, Data WareHouse,是一个用于联机分析 (OLAP) 的列式数据库管理系统 (DBMS)。由俄罗斯本土搜索引擎企业 Yandex 公司为了自己公司自家的 Web 流量分析产品 Yandex.Metrica 开发,后来经过演变,逐渐形成为现在的 ClickHouse。

2022-11-24 13:54:22 1832

原创 【系统设计】本地生活之附近商家 LBS 服务实现

在本章中我们会设计一个系统,用于发现用户附近的一些地方,比如餐厅、酒店、话剧院、博物馆等。

2022-11-13 16:31:57 1690

原创 【Redis】中的一些坑(三)——「数据持久化」篇

Redis 提供了 RDB 和 AOF 两种数据持久化方式,其中 RDB 是数据快照,而 AOF 会记录每一条写命令到日志文件中。

2022-10-23 17:07:51 1419

原创 【TrollStore】苹果手机免费微信双开教程——国外的这款工具太绝了

1 前言众所周知,苹果📱不仅仅信号差,而且国内本土化做的不是很好,尤其是早已被国内厂商惯坏了的安卓阵营用户,通话录音和微信双开功能的缺失导致刚开始非常不习惯。好在近日国外大神公布了一个开源工具,支持任意安装 IPA 程序,也就是我们所说的苹果应用。此外,据说另一位大神的通话录音功能也在测试中,大家期待一下,我也会第一时间出教程!2 安装条件本教程只针对一下系统版本的设备:**iOS 14.0 - iOS 15.4.1****iOS 15.5 Beta 1 - Beta 4****iOS 15

2022-10-19 13:48:28 19577 3

原创 【Redis】中的一些坑(二)——「主从复制」篇

上文中讲解了我们日常使用的一些命令,稍有不慎就会产生严重的影响,本文将继续讲解主从复制中的一些类似问题。

2022-10-16 11:53:08 1144

原创 【Redis】中的一些坑(一)——「常用命令」篇

一个设置了过期时间的 key 最后没有过期;使用O(1)复杂度的SETBIT命令,竟然 OOM 了;使用RANDOMKEY随机读取一个 key,主线程发生阻塞;相同命令主库查不到数据,从库却可以查到;从库使用内存为什么比主库使用的多;…常见命令有哪些坑?数据持久化有哪些坑?主从库同步有哪些坑?

2022-10-15 23:36:52 1362

原创 【Python】京东自动下单抢购脚本——双十一购物小技巧

最近种草一款富士📷已久,但限于富士产能,一直都没有等到开放购买,在尝试几次定闹钟到点准时抢购后,果断放弃,于是花了一个周末时间写了一个简易脚本,终于成为一名合格的“富家子弟”。脚本自动化操作确实可以实现抢购商品,相比手动操作有较高的下单成功率,但仅靠上述代码想与某些专业抢购的服务器进行比较还是相去甚远。

2022-10-06 22:49:52 56134 46

原创 【Java】你应该知道的JDK19新特性

9月20日,JDK19 终于在千呼万唤中正式发布,随之发布的新特性中包括了最为广受期待的虚拟线程,以改善多线程、并发编程难度。

2022-10-06 11:04:13 2645

原创 MySQL是如何实现事务的——锁机制、MVVC详解

🌟 前言🐶 作者简介:大家好,我是周周,目前就职于国内短视频小厂BUG攻城狮一枚。💻个人主页:程序猿周周📖专题系列:Java面试总结🤺 如果文章对你有帮助,记得👍点赞👍、👀关注👀➕👌收藏👌,一键三连哦,你的支持将成为我最大的动力。文章目录🌟 前言1 事务1.1 事务基本特性1.2 事务并发问题1.3 事务隔离级别2 锁机制2.1 锁分类2.1.1 粒度划分2.1.2 用法划分2.2 锁实现2.2.1 记录锁2.2.2 间隙锁2.2.3 临键锁2.3 意向锁2.3.1 意向锁作用2.3.2 意向

2022-05-15 22:30:02 2714 3

原创 【MySQL】redo、undo、binlog日志的作用和实现原理

🌟 前言🐶 作者简介:大家好,我是周周,目前就职于国内短视频小厂BUG攻城狮一枚。💻个人主页:程序猿周周📖专题系列:Java面试总结🤺 如果文章对你有帮助,记得👍点赞👍、👀关注👀➕👌收藏👌,一键三连哦,你的支持将成为我最大的动力。文章目录🌟 前言1 概述1.1 日志分类1.2 日志作用1.2.1 错误日志1.2.2 慢查询日志1.2.3 一般查询日志2 redo 日志2.1 整体流程2.2 持久化2.3 刷盘策略2.4 两次写功能3 undo 日志4 binary 日志4.1 基础概述4.2

2022-05-14 18:26:16 2133

原创 【MySQL】进阶——一起探究MySQL优化器如何选择索引的奥秘

🌟 前言🐶 作者简介:大家好,我是周周,目前就职于国内短视频小厂BUG攻城狮一枚。💻个人主页:程序猿周周📖专题系列:Java面试总结🤺 如果文章对你有帮助,记得👍点赞👍、👀关注👀➕👌收藏👌,一键三连哦,你的支持将成为我最大的动力。文章目录🌟 前言🚀 1 概述🌈 1.1 索引为何不生效🌈 1.2 SQL 的执行过程🌈 1.3 MySQL 做了哪些优化🚀 2 优化器🌈 2.0 数据准备🌈 2.1 逻辑转换🌈 2.2 基于成本优化🌈 2.3 执行计划改进🚀 3 基于成本优化🌈 3.1 什么是成本🌈

2022-05-08 18:29:38 2093 2

原创 详解IO多路复用机制——select、poll、epoll的原理和区别

🌟 前言🐶 大家好,我是周周,目前就职于国内短视频小厂BUG攻城狮一枚。🤺 如果文章对你有帮助,记得关注、点赞、收藏,一键三连哦,你的支持将成为我最大的动力。文章目录🌟 前言🍑 1 概述🍑 2 select🍑 3 poll🍑 4 epoll🍉 4.1 函数定义🍉 4.2 工作模式🍉 4.3 为何高效🍑 5 总结🍉 5.1 三种机制的区别🍉 5.2 epoll 优点🍑 1 概述select、poll 以及 epoll 是 Linux 系统的三个系统调用,也是 IO 多路复用模型的具体实现。由前文

2022-05-03 12:36:50 17703 2

原创 五种常见IO模型

🌟 前言🐶 大家好,我是周周,目前就职于国内短视频某厂的BUG攻城狮一枚。🤺 如果文章对你有帮助,记得关注、点赞、收藏,一键三连哦,你的支持将成为我最大的动力。文章目录🌟 前言1 概述🍑 1.1 什么是 IO🍑 1.2 什么是缓冲区🍑 1.3 阻塞和非阻塞🍑 1.4 同步和异步2 五种 IO 模型🍑 2.1 同步阻塞 IO🍑 2.2 同步非阻塞 IO🍑 2.3 IO 多路复用🍑 2.4 异步 IO🍑 2.5 信号驱动 IO1 概述服务端高并发 IO 编程往往要求的性能都非常高,一般情况下需要选用高

2022-05-02 20:53:10 5834 1

原创 一文整理常见Java后端面试题系列——RocketMQ篇(2022最新版)

🐶⌨️ 短视频小厂BUG攻城狮🤺 如果文章对你有帮助,,你的支持将成为我最大的动力本文是《后端面试小册子》系列的第 1️⃣6️⃣ 篇文章,该系列将整理和梳理笔者作为 Java 后端程序猿在日常工作以及面试中遇到的实际问题,通过这些问题的系统学习,也帮助笔者顺利拿到阿里、字节、华为、快手等多个大厂 Offer,也祝愿大家能够早日斩获自己心仪的 Offer。

2022-04-05 21:26:34 4020 1

原创 一文整理常见Java后端面试题系列——Kafka篇(2022最新版)

Kafka 是分布式发布-订阅消息系统,它最初是由 LinkedIn 公司开发的,之后成为 Apache 项目的一部分,Kafka是一个分布式,可划分的,冗余备份的持久性的日志服务,它主要用于处理流式数据。

2022-03-22 23:18:41 3875

原创 一文整理常见Java后端面试题系列——Netty篇(2022最新版)

Netty 是由 JBOSS 提供的一个 Java 开源框架。Netty 提供异步的、基于事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络 IO 程序,是目前最流行的 NIO 框架,Netty 在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,知名的 Elasticsearch 、Dubbo 框架内部都采用了 Netty。Channel。

2022-03-18 00:30:08 6890 1

原创 一文整理常见Java后端面试题系列——Dubbo篇(2022最新版)

🐶⌨️ 短视频小厂BUG攻城狮🤺 如果文章对你有帮助,,你的支持将成为我最大的动力本文是《后端面试小册子》系列的第 1️⃣3️⃣ 篇文章,该系列将整理和梳理笔者作为 Java 后端程序猿在日常工作以及面试中遇到的实际问题,通过这些问题的系统学习,也帮助笔者顺利拿到阿里、字节、华为、快手等多个大厂 Offer,也祝愿大家能够早日斩获自己心仪的 Offer。

2022-03-16 22:23:55 5244

原创 一文整理总结常见Java后端面试题系列——设计模式篇(2022最新版)

设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

2022-03-14 22:32:23 9495 1

原创 Java 异常面试题总结(2022最新版)

Java 的所有异常可以分为受检异常(Checked Exception)和非受检异常(Unchecked Exception)。受检查异常编译器要求必须处理的异常。正确的程序在运行过程中,经常容易出现的、符合预期的异常情况。一旦发生此类异常,就必须采用某种方式进行处理。除 RuntimeException 及其子类外,其他的 Exception 异常都属于受检异常。

2022-03-13 17:31:35 5610 1

原创 NPM 安装报 Error: EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/xxxxxx‘ 解决

Error: EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/xxxxxx’1 问题描述今天使用 npm i docsify-cli -g 安装 node 脚手架工具时,出现以下错误:andrew@Andrews-MacBook-Pro CSNotes % npm i docsify-cli -gnpm ERR! code EACCESnpm ERR! syscall mkdirnpm ERR! path /usr/.

2022-03-12 16:19:43 9989 2

原创 一文整理总结常见Java后端面试题系列——Java虚拟机篇(2022最新版)

JDK 1.8 以前的 HotSpot 有个叫方法区的内存区域,也叫永久代(permanent generation)。而从 JDK 1.7 开始,方法区的部分数据就被移除:符号引用(Symbols)移至 Native heap,字面量(interned strings)和静态变量(class statics)移至 Java heap。

2022-03-10 22:04:23 11062 1

原创 一文整理总结常见Java后端面试题系列——Java并发篇(2022最新版)

初始(NEW):新创建了一个线程对象,但还没有调用start()方法;运行(RUNNABLE):Java 线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”;线程对象创建后,其它线程(如 main 线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取 CPU的 使用权,此时处于就绪状态(ready)。就绪状态的线程在获得 CPU 时间片后变为运行中状态(running)。阻塞(BLOCKED):表示线程阻塞于锁;

2022-03-03 23:35:22 15610 1

原创 一文整理总结常见Java面试题系列——Java集合篇(2022最新版)

集合是用于存放对象的容器,而集合类是 Java 的一种数据结构,常用的集合类定义在 java.util 包中。需要注意的是,集合类只能存放对象,不能存放基本数据类型,且是对象的引用,而非对象本身。好处提供高效的的数据结构和算法,挺高程序运行效率;提供通用 API 能力,降低开发和维护成本;RandomAccess 接口是 Java 集合框架中为了标记 List 集合是否支持随机访问而设计。

2022-02-28 00:10:39 18301 3

原创 一文整理总结常见Java后端面试题系列——Java基础篇(2022最新版)

为什么会出现自动拆装箱Java 语言是一个面向对象的语言,但是 Java 中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。使得基本数据类型也具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

2022-02-23 00:10:27 22872 1

原创 一文整理总结常见Java后端面试题系列——Spring篇(2022最新版)

一、基本概念1、Spring 是什么?Spring 是一个轻量级 Java 开发框架,最早有 Rod Johnson 创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的 JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发 Java 应用程序提供全面的基础架构支持。Spring 负责基础架构,因此 Java 开发者可以专注于应用程序的开发。Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。2、Spring 带来哪些好处

2022-02-21 00:14:26 21659 2

原创 Linux面试题总结(2022最新版)

🐶⌨️ 短视频小厂BUG攻城狮🤺 如果文章对你有帮助,,你的支持将成为我最大的动力本文是《后端面试小册子》系列的第 5️⃣ 篇文章,该系列将整理和梳理笔者作为 Java 后端程序猿在日常工作以及面试中遇到的实际问题,通过这些问题的系统学习,也帮助笔者顺利拿到阿里、字节、华为、快手等多个大厂 Offer,也祝愿大家能够早日斩获自己心仪的 Offer。

2022-02-19 12:22:33 20047 2

原创 操作系统面试题总结(2022最新版)

内核态:运行操作系统程序,几乎可以访问计算机的任何(硬件)资源用户态:运行用户应用程序系统调用异常硬件中断僵尸进程是子进程先于父进程退出后,子进程的 PCB 需要其父进程释放,但是父进程并没有释放子进程的 PCB,这样的子进程就称为僵尸进程。僵尸进程实际上是一个已经死掉但并未释放 PBC 的进程。清楚了僵尸进程的定义,我们再来了解一下它的产生。僵尸进程的产生一个进程在调用 exit 命令结束自己的生命周期时,它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)

2022-02-18 09:58:48 10427 2

原创 计算机网络面试题总结(2022最新版)

计算机网络面试题总结(2022版)本文是 Java 面试总结系列的第三篇文章,该专栏将整理和梳理笔者作为 Java 后端程序猿在日常工作以及面试中遇到的实际问题,通过这些问题的系统学习,也帮助笔者顺利拿到阿里、字节、华为、快手等Offer。由于笔者能力有限,其中大多答案来自巨人的肩膀并引以出处,若有错误或疏忽还望各位大佬们不吝指出…标题地址MySQL数据库面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/1229.

2022-02-17 10:02:22 20183 9

原创 Redis面试题总结(2022最新版)

也就是说扩容和收缩操作不是一次性、集中式完成的,而是分多次、渐进式完成的。如果保存在 Redis 中的键值对只有几个几十个,那么 rehash 操作可以瞬间完成,但是如果键值对有几百万,几千万甚至几亿,那么要一次性的进行 rehash,势必会造成 Redis 一段时间内不能进行别的操作。所以 Redis 采用渐进式 rehash。这样在进行渐进式 rehash 期间,字典的删除查找更新等操作可能会在两个哈希表上进行,第一个哈希表没有找到,就会去第二个哈希表上进行查找。

2022-02-15 09:32:44 102288 30

原创 MySQL数据库面试题总结(2022最新版)

MySQL 数据库面试题(2022版)文章目录一、基础基本概念MySQL有哪些数据库类型?CHAR 和 VARCHAR 区别?数据库设计什么是三大范式?什么是范式和反范式,以及各自优缺点?二、索引索引的几种类型或分类?索引的优缺点?索引设计原则?索引的数据结构?Hash 和 B+ 树索引的区别?为何使用 B+ 树而非 B 树做索引?什么是最左匹配原则?什么是覆盖索引?什么是索引下推?三、存储存储引擎有哪些常见的存储引擎?MyISAM 和 InnoDB 的区别?InnoDB 的四大特性?InnoDB 为.

2022-02-13 17:15:42 267991 57

原创 【ZooKeeper】上班摸鱼时间——一文了解 ZAB 协议

本文将会围绕《ZooKeeper’s atomic broadcast protocol: Theory and practice》这篇论文讲解 ZooKeeper 和 ZAB 的精髓之处。大家好,我是周周,前几周开组会时被点名回答一些 ZooKeeper 相关问题,竟然一问三不知,组长直呼当初被我帅气外表所骗,稀里糊涂的招了进来。于是下来后对这个在我手发挥极其重要作用的这项基建产生了浓厚兴趣,所以决定痛改前非,先从 ZAB 出发,开启一系列的 ZooKeeper 进阶之旅。

2021-12-30 01:07:44 2004 3

原创 我与前任们的故事——暨2021个人年度报告

我的前任们——暨2021个人年度总结大会大家好,我是周周,不知不觉,2021已经进入尾声,在一个难得的双休夜晚,一个人躺在北郊的独居公寓内,回忆起这一年来的点点滴滴,遍再也无法入眠。今年所有时间总结下来,大致就是我与我前任们的故事。文章目录我的前任们——暨2021个人年度总结大会前言三个前任的故事两个现任一些感悟传统厂商与互联网关于情感关于生活最后前言回想起每年的这个时候,都想好好总结过去一年发生的一切,该奖励的奖励,该鞭策的鞭策,但总是因为

2021-12-29 01:36:26 498 5

原创 用户社交粉丝关系链实现

揭秘社交粉丝关系链实现本文基于工作中真实项目的个人总结,虽然上线后经历上亿用户和千万DAU验证,但局限于个人能力,如文中有错误和不足,欢迎大家在留言中指出和补充!1 概述在我们日常使用的网络社交应用中,必然离不开关注功能,大致为关注某人成为其粉丝,若又被其关注,则互为好友,同时还可以支持特别关注、拉黑等附加功能。这样一个关系链系统中,如何高效存储和查询海量用户关系是首要解决的问题。1.1 关系分类在设计该系统之前,我们需要先要理清楚对应的分类和角色。其中有两个重要角色:follower(关

2021-12-18 18:01:47 2223 7

原创 短链接服务的原理和实现

1 概述在社区类产品甚至短信中,我们常常可以看到加入了诸如https://dwz.win/auQx几位编码的短链接。虽然很大一部分因为可能是社交类媒体的文本长度限制,但将长链接转成短链,还有其它几大优势:短链接一般六到八位路径地址,方便对外使用短链接支持定向,也可随时修改重定向源地址简化二维码,提高二维码的识别率(二维码复杂度和原始信息大小正相关)常用的短链接服务商:新浪短链接SUO短链接百度短链接2 实现原理再浏览器中访问https://dwz.win/auQx,查看其请求过程

2021-12-12 17:42:40 4378

原创 扫码登录的原理和实现

1 概述在日常 Web 端产品的使用中,一般都会支持扫码登录,这种方式操作简单,相对传统的手机号登录等方式速度更快、安全性更高,还可以增加自家产品的粘合度。2 登录原理扫码登录本质是解决将 APP 端的用户登录信息(通常是 Token)通过扫码的形式安全稳定地同步给 Web 端。1)用户打开 Web 端网页,进入扫码登录的界面;2)从 Web 端服务器获取二维码的图并获取其状态;3)Web 端服务器在生成二维码时,会生成一个 uuid 和二维码进行关联,并将 uuid 存入 db 记录中;4)

2021-11-15 22:19:49 14427 9

路由器Drcom哆点教程

斐讯k2路由器刷pandorabox认证哆点Drcom通用教程:哆点账号登陆只能让一个设备使用网络,所以只有通过开源固件pandorabox,通过python程序在路由器上模拟drcom运行。

2017-09-13

mingw32-make

mingw32-make,解决MinGw中mingw32-make.exe丢失,eclipse无法找到make等问题

2016-10-29

空空如也

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

TA关注的人

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