- 博客(22)
- 收藏
- 关注
原创 阻塞队列(超详细易懂)
超详细大文,带你理解阻塞队列,以及和生产者消费者模型的关系,学会自己实现一个阻塞队列。阻塞队列是一种特殊的队列,同样遵循“先进先出”的原则,支持入队操作和出队操作。当队列已满时,继续入队列就会阻塞,直到有其他线程从队列中取走元素。当队列为空时,继续出队列也会阻塞,直到有其他线程向队列中插入元素。
2024-02-03 08:44:27 4868 11
原创 定时器 Timer(超详细模拟实现)
定时器作为软件开发中的重要组件,用于在特定的时间间隔内执行某些任务,类似于我们生活中的“闹钟”。《实现思路:就像是一个业务窗口(扫描线程),预约的人(任务)排成队伍(优先级队列),随时有其他人根据预约时间(执行时间)先后插入(入队)其中,业务窗口一直面对的都是其中最先预约的人(队首),而且还要等到人预约时间到了才办理相应的业务(执行任务)。
2024-02-03 08:42:51 2245 4
原创 <JavaEE><多线程>线程安全问题
我们的代码无论是在单线程情况下,还是在多线程情况下,都不会产生bug,则我们称该部分代码是“线程安全”的。反之,若代码在单线程情况下运行无误,在多线程情况下产生了bug,则这部分代码就有线程安全问题,称之为“线程不安全”或“存在线程安全问题”。
2024-01-05 21:17:24 1295 4
原创 <JavaEE><多线程>线程状态
通过Thread类提供的getState()方法,我们可以获取到线程当前的状态,而在不同情况下,返回值不同,所代表的线程状态也不同
2023-12-13 23:42:23 62 1
原创 <JavaEE><多线程>线程Thread类,创建线程及各种线程操作
进程是操作系统对正在运行程序的一种抽象,是操作系统进行资源分配的基本单位,我们可以认为每个运行于操作系统上的应用程序都是一个进程。线程是一个“执行流”,每个线程都可以按照循序执行自己的代码,而在一个进程中可以有多个线程,也就是说可以支持同时执行多份代码。多线程的API是由操作系统提供,Java来进行抽象和封装后再由程序员来使用的,具体为Java标准库中的Thread类(在Java默认引用的java.lang包中)。
2023-12-10 21:40:52 80 1
原创 <MySQL><JDBC>Java连接MySQL数据库并执行sql语句
JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范,根据各个数据库提供的驱动包,使得sql能在Java中执行。(驱动包是为了将mysql的api转为符合JDBC规范的api,不符合JDBC的数据库api不能再Java中使用)1在中央仓库搜索mysql,点击下图所示位置2找到自己mysql对应版本的驱动包,点进去3点击自动下载驱动包。
2023-11-20 21:30:05 563 1
原创 <MySQL><复习>MySQL表的增删改查
在指定列查询的列列表部分,我们可以在指定列的同时为当前列起一个别名并代替原列名显示在查询结果上,值得注意的是别名在语句中没有实际属性,也就是说别名不能代表原列,在需要对指定列进行操作时还要使用原列名。全列查询是MySQL表查询中最简单的操作,用以显示表中的所有记录,但这其实是一个相当危险的操作,对于大型表来说庞大的数据量会占用相当大的带宽,可能会导致卡死等问题。MySQL表一次新增可以插入一行记录,也可以同时插入多行记录,在插入行的同时,我们可以指定插入行包括的列。注:满足限定条件的行记录都是修改的范围。
2023-11-06 23:08:41 350
原创 <排序算法二>从零到一理解“简单选择排序”和“堆排序”
通过“稽梨太美”理解简单选择排序。从零至一,超详细的从堆是啥一路讲到排序算法,不仅囊括所有细节,同时包括大量手绘配图帮助理解。(堆是啥,堆与数组,向下调整,建堆,堆排序,算法复杂度分析……)
2023-10-16 13:24:43 662 2
原创 <排序算法二>层层深入,从堆开始理解“堆排序”
从零至一,超详细的从堆是啥一路讲到排序算法,不仅囊括所有细节,同时包括大量手绘配图帮助理解。(堆是啥,堆与数组,向下调整,建堆,堆排序,算法复杂度分析……)
2023-10-16 13:12:06 381 4
原创 <排序算法一>快速理解“直接插入排序“和“希尔排序“
超详细图文讲解,带你理解直接排序和希尔排序,包括手绘彩图,代码实现,复杂度分析,实列分析。另,语言为Java
2023-10-15 00:18:42 603 5
原创 Stack栈结构 及 Java模拟实现
栈作为一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和数据删除的一端称之为栈顶,另一端则称为栈底。栈中数据元素遵循后进先出原则LIFO(Last In First Out)。
2023-10-04 19:09:47 88 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人