自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【HTTPS】采用的加密策略, 什么是中间人攻击? 什么是证书?

HTTPS 仅仅使用对称加密, 无法安全传输 Key, 使用非对称加密即可, 但会有"中间人攻击"风险, 所以引入证书, 通过校验证书能够判断对端是否值得信任, 整个复杂的机制都是为了确保安全的传输Key, 然后才能传输数据

2023-07-01 22:43:21 1124 2

原创 【TCP 协议1】三次握手和四次挥手到底是什么意思?

你一定听说过三次握手和四次挥手, 到底是什么呢? 过程是怎样的? 其实一点也不难!!看完本篇就懂了

2023-05-16 22:45:47 654 3

原创 【Linux】Java 程序员必会的 Linux 最常用的命令

汇总 Java 程序员必须必须必须必须要需要掌握的一些 Linux 的常用命令

2023-12-08 00:22:00 983 1

原创 【JVM】 类加载机制、类加载器、双亲委派模型详解

JVM 中的类加载机制, 分为加载, 验证, 准备, 解析, 初始化五步, 在第一步 “加载” 中, 涉及到了 “双亲委派模型” , 而这又建立在三层类加载器的基础上

2023-10-03 19:46:01 776

原创 【JVM】运行时数据区(内存区域划分)详解

JVM 中内存区域划分为:堆,本地方法栈,虚拟机栈,元数据区,程序计数器,这些区域的作用和特点你了解吗?栈溢出,内存泄漏,内存溢出分别是什么?有什么联系?

2023-10-03 17:30:33 727

原创 从零手搓一个【消息队列】实现虚拟主机的核心功能

本篇主要实现了"虚拟主机", 类似于数据库, 虚拟主机的作用是为了隔离不同业务线的数据, 虚拟主机把硬盘(数据库+文件)和内存这两个模块的数据管理整合在一起, 并且封装了一系列核心 API, 供上层( BrokerServer )调用

2023-10-03 14:46:03 244

原创 从零手搓一个【消息队列】实现数据的硬盘管理和内存管理(线程安全)

对数据库和文件中的数据进一步整合, 封装成硬盘数据管理, 实现内存中对交换机, 队列, 绑定, 消息的增删查, 并支持并发场景下的线程安全

2023-10-01 14:49:35 175

原创 从零手搓一个【消息队列】实现消息在文件中的存储

使用ObjectOutputStream和ObjectInputStream实现对象的序列化/反序列化, 设计文件存储的格式和规范, 自主实现垃圾回收机制以及对文件上数据的管理

2023-10-01 00:52:16 293

原创 从零手搓一个【消息队列】创建核心类, 数据库设计与实现

充分结合面向对象思想, 创建出了交换机, 队列, 绑定, 消息, 等核心概念的类, 使用 SQLite, 并结合 MyBatis 编写了交换机, 队列, 绑定的建表, 增, 删, 查的 sql, 对数据库的初始化, 判断存在, 删除等做进一步的封装

2023-09-30 15:19:04 509

原创 Java【手撕链表】LeetCode 143. “重排链表“, 图文详解思路分析 + 代码

一道中等难度的题竟然一次性融合了3个题型![寻找中间结点]+[链表逆序]+[合并两个链表], 图文并茂详解经典链表题目"重排链表"

2023-09-29 19:26:57 279

原创 从零手搓一个【消息队列】项目设计、需求分析、模块划分、目录结构

可跨主机的生产者消费者服务器程序,用于服务器之间的解耦,流量削峰;使用RPC模式,由客户端发送网络请求,远程调用服务器以操作交换机、队列、发布消息、订阅消息等;由服务器实现相关逻辑、持久化存储、异步转发消息等

2023-09-29 15:56:28 297

原创 Java【多线程】Callable 是什么, 如何使用并理解 Cllable, 和 Runnable 有什么区别?

Callable 是一个函数式接口, 也是用于创建线程, 把线程封装了一个 "返回值", 方便程序猿借助多线程的方式计算结果, 通常需要搭配 FutureTask 使用, 调用 get() 方法即可获取返回值

2023-09-29 12:55:03 568

原创 Java【手撕链表】LeetCode 2. “两数相加“, 图文详解思路分析 + 代码

图文并茂详解经典链表题目"两数相加", 使用傀儡头结点辅助构建新链表

2023-09-28 09:34:48 201

原创 Java【手撕滑动窗口】LeetCode 438. “字符串中所有异位词“, 图文详解思路分析 + 代码

一般来说, 如果我们研究的对象是 "连续的区间" 就可以考虑滑动窗口, 滑动窗口其实就是"同向双指针", 滑动窗口的特点是, 前后两个指针不会回退, 并且窗口总是向前滑动, 窗口不是固定大小的, 可能边长也可能变短, 如果你在分析题目的时候发现了这些特征, 那就基本是滑动窗口的解法了

2023-09-03 16:44:02 909

原创 Java【手撕滑动窗口】LeetCode 3. “无重复字符的最长子串“, 图文详解思路分析 + 代码

一般来说, 如果我们研究的对象是 "连续的区间" 就可以考虑滑动窗口, 滑动窗口其实就是"同向双指针", 滑动窗口的特点是, 前后两个指针不会回退, 并且窗口总是向前滑动, 窗口不是固定大小的, 可能边长也可能变短, 如果你在分析题目的时候发现了这些特征, 那就基本是滑动窗口的解法了

2023-08-30 10:00:00 353

原创 【SpringBoot】两种配置文件, 详解 properties 和 yml 的语法格式, 使用方式, 读取配置

详解SpringBoot中properties和yml这两种配置文件的语法格式, 系统配置项和自定义配置项的使用方式, 配置信息的读取方式, 使用@Value或@ConfigurationProperties

2023-08-29 09:35:39 2837

原创 Java【手撕滑动窗口】LeetCode 209. “长度最小子数组“, 图文详解思路分析 + 代码

一般来说, 如果我们研究的对象是 "连续的区间" 就可以考虑滑动窗口, 滑动窗口其实就是"同向双指针", 滑动窗口的特点是, 前后两个指针不会回退, 并且窗口总是向前滑动, 窗口不是固定大小的, 可能边长也可能变短, 如果你在分析题目的时候发现了这些特征, 那就基本是滑动窗口的解法了

2023-08-29 09:35:09 310

原创 Java【手撕双指针】LeetCode 18. “四数之和“, 图文详解思路分析 + 代码

"查找的本质是排除", 利用干这一思想 + 使用对撞双指针, 快速解出"四数之和", 本题和 "三数之和(以两数之和为基础)" 的思想基本一致

2023-08-28 09:04:50 498

原创 Java【手撕双指针】LeetCode 15. “三数之和“, 图文详解思路分析 + 代码

"查找的本质是排除", 基于这一思想+使用对撞双指针, 在"两数之和"这道题的基础上, 快速解出"三数之和"

2023-08-28 08:30:48 272

原创 【SpringBoot】使用 HandlerInterceptor 拦截器进行用户登录验证? 为什么不使用 SpingAOP ?

拦截器 HandlerInterceptor 相比于 SpringAOP 有两大优点 : 1. preHandle() 可以轻松的获取并使用 request 和 response 对象. 2. addInterceptors() 中将自定义的拦截器加入到系统配置, addPathPatterns() 和 excludePathPatterns() 配合可以很自由的定义拦截规则. 拦截器会在Controller 层之前执行, 执行我们定义的预处理逻辑

2023-08-28 04:27:58 474

原创 【Spring】什么是 AOP(面向切面编程) ? 为什么要有 AOP ? 如何实现 Spring AOP ?

AOP(Aspect Oriented Programming)面向切面编程, 这是一种思想, 是对某一类事情的集中处理, 其核心思想是将那些与业务逻辑无关, 但是被多处业务逻辑模块共享的代码(比如判断用户登录, 日志管理, 权限检查, 事务管理等)抽取出来集中处理, 这样, 开发者可以将更多的精力放在处理核心业务逻辑上

2023-08-27 10:33:52 801

原创 Java【手撕双指针】LeetCode 57. “两数之和“, 图文详解思路分析 + 代码

"查找的本质是排除 ! !" 如何利用这一思想 + 双指针快速解出两数之和?

2023-08-24 02:30:26 533

原创 Java【手撕双指针】LeetCode 611. “有效三角形个数“, 图文详解思路分析 + 代码

"查找的本质是排除 ! ! !", 如何利用这一思想结合"对撞双指针", 巧解出有效三角形的个数? 简单题也有大学问 ! 本题重点讨论查找时, "对撞双指针"的遍历方式

2023-08-23 07:47:46 338

原创 Java【手撕双指针】LeetCode 11. “盛水最多的容器“, 图文详解思路分析 + 代码

"查找的本质就是排除 ! ! !" 如何利用这种思想, 配合对撞双指针快速解出本题

2023-08-22 11:49:56 215

原创 Java【手撕双指针】LeetCode 202. “快乐数“, 图文详解思路分析 + 代码

双指针基础题型 ! 借鉴"判断链表是否有环"的思想, 使用快慢双指针快速判断一个数是否为"快乐数"

2023-08-22 09:52:49 176 1

原创 Java【SpringBoot】SpringBoot 和 Spring 有什么区别? SpringBoot有哪些优点?

Spring 是一个轻量级的开源框架, 是一个包含了众多方法工具的 IoC容器, 而 SpringBoot 是 Spring 的"脚手架", 是为了快速开发 Spring 而诞生的框架, 所以是对Spring 的扩展和延伸

2023-08-22 05:12:28 497

原创 Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?

Cookie 是浏览器客户端在本地存储用户自定义数据的一种机制, 而 Sesion 是服务器存储用户身份信息的一种机制, 这两种机制有什么联系和区别呢?

2023-08-21 13:37:25 1494

原创 Java【手撕双指针】LeetCode 1089. “复写零“, 图文详解思路分析 + 代码

「数组分两块」是⾮常常⻅的⼀种题型,主要就是根据⼀种划分⽅式,将数组的内容分成左右两部分。这种类型的题,⼀般就是使⽤「双指针」来解决

2023-08-21 09:14:08 218

原创 Java【手撕双指针】LeetCode 283. “移动零“, 图文详解思路分析 + 代码

「数组分两块」是⾮常常⻅的⼀种题型,主要就是根据⼀种划分⽅式,将数组的内容分成左右两部分。这种类型的题,⼀般就是使⽤「双指针」来解决

2023-08-21 08:23:04 114

原创 Java【动态规划】图文详解 “路径问题模型“ , 教你手撕动态规划

本篇总结动态规划中的"路径问题模型": 不同路径, 最大礼物价值, 下降路径最小和, 最小路径和, 地下城游戏

2023-08-18 12:00:54 616

原创 【Spring】Bean 的作用域和生命周期

Bean 的作用域和生命周期是面试中很常见的问题, 就连字节, 百度等大厂也常考, 本文就介绍 Bean 的六种作用域, 和生命周期( 5 步执行流程)

2023-08-17 11:25:09 328

原创 【MySQL】面试必问 : 并发执行事务可能存在的问题, 事务的四种隔离级别

MySQL 中面试必问内容, 非常重要 ! ! 介绍了并发执行事务事存在的幻读, 不可重复读, 幻读问题, 以及四种隔离级别下能够不同程度的解决这些问题

2023-08-12 12:12:17 477

原创 【Spring】使用类注解或方法注解, 更简单的存储和获取 Bean

使用 @Controller、@Service、@Repository、@Component、@Configuration 这五大类注解可以存储 Bean, 使用 @Bean 这个方法注解并搭配`任意一个类注解`可以将返回值作为 Bean 存储, 使用 @Autowired 可以进行属性注入, setter 注入, 构造方法注入, 实现方便的获取 Bean

2023-08-10 09:44:19 776

原创 【Spring】项目创建、存储和获取 Bean 的基本方式

各位读者好, 我是小陈,这是我的个人主页, 希望我的专栏能够帮助到你:📕JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等📗Java数据结构: 顺序表, 链表, 堆, 二叉树, 二叉搜索树, 哈希表等📘JavaEE初阶: 多线程, 网络编程, TCP/IP协议, HTTP协议, Tomcat, Servlet, Linux, JVM等(正在持续更新)提示:是正在努力进步的小菜鸟一只,如有大佬发现文章欠佳之处欢迎批评指点~ 废话不多说,直接上干货!

2023-07-29 00:08:55 609

原创 【Spring】 核心概念: 什么是 IoC, 什么是 DI?

学习 Spring 第一课 ! 要理解 Spring 是一个 IoC 容器, 如何理解 IoC? 如何理解 DI?

2023-07-23 23:24:34 395

原创 【Servlet】如何创建 Maven 项目,使用 Servlet 编写第一个 helloword 程序

各位读者好, 我是小陈,这是我的个人主页, 希望我的专栏能够帮助到你:📕JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等📗Java数据结构: 顺序表, 链表, 堆, 二叉树, 二叉搜索树, 哈希表等📘JavaEE初阶: 多线程, 网络编程, TCP/IP协议, HTTP协议, Tomcat, Servlet, Linux, JVM等(正在持续更新)提示:是正在努力进步的小菜鸟一只,如有大佬发现文章欠佳之处欢迎批评指点~ 废话不多说,直接上干货!

2023-07-03 22:48:38 214

原创 Java【动态规划】斐波那契数列模型, 图文思路详解 + 代码实现

总结分享四道[斐波那契数列模型] 的题目 : 第N个泰波那契数, 三步问题, 最小爬楼梯花费, 解码方案

2023-07-02 22:28:01 4028

原创 【HTTP 协议2】如何构造 HTTP 请求

构造一个HTTP请求可以通过在地址栏输入URL, HTML中的特殊标签, form 表单, ajax等

2023-06-30 22:32:08 962

原创 【HTTP 协议1】图文详解 HTTP 请求和应答报文

超详细介绍HTTP协议中请求和应答报文中GET和POST的区别, URL, Header中的重要属性, 常见的状态码等

2023-06-29 23:01:32 5446

原创 【MySQL】聚合查询 + 多表联合查询(重点)

期末复习必看, 小白必看, 介绍常用聚合函数, 多表联合查询中的内连接, 外连接, 自链接

2023-05-26 21:14:14 3537

空空如也

空空如也

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

TA关注的人

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