自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 「网络通信」HTTP 协议

HTTP 协议全称为超文本传输协议,超文本比文本更加强大,它不仅包含字符串,还可以携带一些图片、特殊格式等HTTP 最主要的应用场景就是网站。浏览器和服务器、客户端和服务器之间传输数据的协议,很可能就是 HTTP。

2024-07-14 08:20:05 1368 1

原创 「TCP 重要机制」滑动窗口 & 粘包问题 & 异常情况处理

🎇🎇🎇。

2024-06-15 16:55:09 1196

原创 「网络原理」IP 协议

🎇🎇🎇。

2024-06-15 09:18:42 1087

原创 「TCP 重要机制」三次握手&四次挥手

🎇🎇🎇。

2024-06-10 21:48:50 2053 7

原创 「计网」网络初识

🎇🎇🎇。

2024-06-01 21:55:15 935 3

原创 「网络编程」基于 UDP 协议实现回显服务器

操作系统给我们提供的进行网络编程的 api 称为socket api(网络编程套接字),具体到传输层,有两个重要的协议的 api ——UDP api和TCP api,本文我们介绍的是 UDP apiUDP 有四个特点:无连接、不可靠传输、面向数据报、全双工。这在后文中会解释Java 对系统原生的 api 进行了封装,UDP socket 有两个核心的类操作系统中有一类文件,叫作socket 文件,它和我们之前所说的“文件”不太一样,我们平时所说的普通文件、目录文件位于硬盘。

2024-05-29 10:58:22 2382 4

原创 「多线程」CAS & ReentrantLock & 信号量

🎇🎇🎇。

2024-05-19 20:46:31 1187 27

原创 「JavaEE」锁策略

加锁的过程中可能会出现冲突,这就会涉及到不同的处理方式,这些方式就称为锁策略。

2024-05-18 22:17:26 1290 4

原创 「JavaEE」多线程案例分析2:实现定时器

定时器类似一个闹钟,时间到了之后就会执行相应的任务Java 标准库中已经实现了一个定时器的类 Timer在定义好 timer 之后可以调用schedule把一个或多个任务(TimerTask)添加到定时器中@Override},2000);第一个参数就是任务内容,每个任务后面都会带有一个时间(第二个参数),这个时间是“相对时间”,是以 schedule 时的时间为基准,过了相对时间后才执行比如 2000ms,它表示调用 schedule 后再过 2000ms 就会执行这个任务。

2024-05-14 09:07:32 865 1

原创 「JavaEE」多线程案例分析3:线程池

池”是一个非常重要的概念,我们之前学的字符串常量池就是一种常量池除了常量池,还有数据库连接池、线程池、进程池、内存池……提前把要用的对象准备好对象用完后也不要立即释放,而是先留着,以备下次使用我们主要来分析线程池它是存放线程的池,会把要使用的线程提前创建好,用完之后也不会立即释放,而是放回线程池里。这样就可以节省创建及销毁线程的开销那为什么从线程池里取线程就比向系统申请更高效呢?因为从池里取,这部分是通过代码实现的,代码是我们自己写的,是纯用户态的(可控的);

2024-05-14 09:00:00 1113 1

原创 「JavaEE」多线程案例1:单例模式&阻塞队列

了解两种基础的单例模式、阻塞队列的原理及实现

2024-05-08 08:45:00 1311 13

原创 「JavaEE」线程安全2:内存可见性问题& wait、notify

🎇🎇🎇。

2024-05-04 20:57:04 1141 18

原创 「JavaEE」线程安全1:成因&死锁

🎇🎇🎇。

2024-04-28 15:26:50 1329 9

原创 「JavaEE」线程状态

这是一个经典的面试题,以下面代码为例:可以看到结果都输出“hello”这两者的区别在于:调用是创建一个新的线程,由这个线程执行打印 hello 的任务;而 则是调用 Thread 实例中的 run 方法,这个操作是在 main 主线程中打印 hello如果我们把代码改成下面这样:在 run 方法和 main 方法中写个死循环,此时 t.run() 就只打印 hello thread,主线程没办法再向下执行🍉终止线程一个线程,它的 run 方法如果执行完毕,那么它就终止了如果我们想让线程

2024-04-24 19:40:55 1319 3

原创 「JavaEE」线程

🎇🎇🎇。

2024-04-17 12:37:51 1085 47

原创 「JavaEE」初识进程

但是一个进程消耗 CPU 资源,这个要如何看待呢?比如选中某进程,点击“结束任务”,那么此时任务管理器就会获取到你选中的进程的 pid,然后调用一个系统 api,把 pid 作为参数传进去,从而完成杀死进程的操作。这里所说的 IO,可能是来自控制台的输入/输出(比如等待 Scanner 的输入,也可能是硬盘的输入/输出、网卡的输入/输出)就是 CPU 的核心先执行进程1的代码,执行一段时间之后,让进程1下来,换进程2上去……如果某个进程的代码出 bug 了,那么只会影响到当前这个进程,不会影响到其他进程。

2024-04-10 17:06:43 1346 51

原创 「MySQL」索引&事务

🎇🎇🎇。

2024-03-31 22:06:32 1107 4

原创 「JavaSE」Lambda表达式

Lambda表达式是Java SE 8中一个重要的新特性,基于数学中的λ演算得名,也可称为闭包,它允许我们通过表达式代替功能接口和方法类似,Lambda表达式提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)Lambda 表达式的优点很明显,在代码层次上来说,它使代码变得非常简洁。不过简洁是有代价的,那就是降低了代码的可读性,而且不容易调试。

2024-03-29 11:26:09 1381 12

原创 「MySQL」查询方式(5k字长文!超详细!)

前面我们讲查询时带表达式,比如成绩表中有语文、数学、英语三个科目,我们要查询总分,就要用到:这种查询方式实际上是在进行之间的运算而聚合查询,则是进行“行与行”之间的运算,不过这里行之间的运算有一定的限制——只能通过来进行操作,这就需要用到SQL提供的一些库函数了。聚合查询不像表达式查询那样随便写表达式就可以了下面我们来看一下常用的聚合函数:现在有一个学生表:这行代码得到结果为4,它就相当于先执行:然后再使用 count 来计算结果的行数大多数情况下,和没什么区别,在特定情况下才会有差异比如,往

2024-03-27 20:53:48 3548 13

原创 「MySQL」数据库约束

🎇🎇🎇。

2024-03-25 16:31:13 1219 29

原创 「动态规划」简单多状态dp问题

以经典问题“打家劫舍”来解释简单多状态dp问题和解决方法题目链接:打家劫舍I这种问题就是在某一个位置有多个状态可以选择,选择会影响在这道题中就是小偷在每一个房屋,可以选择偷或不偷,每一次选择都会影响最终偷窃金额代码如下:当然,我们要讲的肯定不止一道题,上面的题只是基础题。而当我们面对中等题、难题时,要有能力将它们转化为我们见过的题,下面以两道题示例:题目链接:打家劫舍II在这道题中,房屋的排列变成了环形如果偷第1个房屋,那就不能偷第二个和最后一个,此时第三个房屋到最后一个房屋其实是直线形,那就

2024-03-14 10:16:23 849 18

原创 「递归」方法论

因为递归和循环都是在处理重复子问题,所以它们之间可以相互转化。

2024-03-12 16:44:38 229 4

原创 「题解」动态规划:解码方法

对于①和②两种情况,如果可以解码,那就让 dp[ i ] 加上。dp 表最后一个元素。

2024-03-09 08:55:53 377 3

原创 「算法」常见位运算总结

总结了常见的位运算符和一些位运算的操作方法

2024-03-01 21:08:35 353 4

原创 「MySQL」基本操作&类型

🎇🎇🎇。

2024-02-29 16:21:21 656 8

原创 「MySQL」增删查改

MySQL增删查改基础操作

2024-02-29 16:18:11 1067 12

原创 「算法」前缀和

元素和。

2024-02-28 19:59:50 1015 11

原创 「JavaSE」String类3:字符串常量池

🎇🎇🎇。

2024-02-23 13:48:57 546 9

原创 「知识札记」2.toString 和 valueOf 方法

这个系列主要记录一些比较零碎、细节的知识点,随缘更新啦~

2024-02-22 15:28:52 364 1

原创 「算法」二分查找:一道题带你领悟二分查找的精髓!

也就是说,left 和 right 最终相遇的地方就在 target 处,此时没必要进循环了②。

2024-02-18 23:20:17 681 1

原创 「算法」二分查找1:理论&细节

细节多,出错率高,很容易就写成死循环有模板,但切记要在理解的基础上记忆,不要死记硬背。有三个模板,一个是本文要讲的简单模板,另外两个分别是查找左、右边界的模板,会在后面的文章中讲解。

2024-02-17 20:14:50 597 3

原创 「算法」滑动窗口

算法需要多刷题积累经验,所以我行文重心在于分析解题思路,理论知识部分会相对简略一些。

2024-02-17 14:30:07 2265 9

原创 「数据结构」哈希表2:实现哈希表

🎇🎇🎇。

2024-02-14 16:11:19 1046 4

原创 「数据结构」Map&Set

🎇🎇🎇。

2024-02-13 20:58:49 1408 6

原创 「知识札记」1.Object[ ]数组

这个系列主要记录一些比较零碎、细节的知识点,随缘更新啦~

2024-02-13 20:57:04 342

原创 「数据结构」优先级队列

优先级队列底层是用堆实现的二叉树1:堆的实现。

2024-02-13 16:16:34 1024

原创 「数据结构」哈希表1:基本概念

🎇🎇🎇。

2024-02-12 10:35:17 1255

原创 「数据结构」二叉搜索树1:实现BST

🎇🎇🎇。

2024-02-10 21:51:01 1312 1

原创 「刷题」2.二叉树的题刷不动?快进来拓展解题思路!

采用层序遍历的思路,遍历每一层的时候,先创建一个数组存放该层节点,遍历完一层后,取出最右边的节点。对每个根节点进行分类讨论,分析如何添加括号。以上是第一种解法,接下来说另一种。思路:公共祖先节点有两种情况。

2024-02-07 12:36:14 572

原创 「刷题」二叉树的题刷不动?快进来拓展解题思路!

🎇🎇🎇。

2024-02-06 15:14:37 836 13

空空如也

空空如也

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

TA关注的人

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