- 博客(60)
- 收藏
- 关注
原创 网络原理 - 初识
网络发展史网络发展史独立模式独立模式:计算机之间相互独立;网络互连将多台计算机连接在一起,完成数据共享。数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。根据网络互连的规模不同,可以划分为局域网和广域网。局域网LAN(1)基于网线直连(2)基于交换机组建(3)基于交换机和路由器组建交换机下面还能再接路由器,路由器下面还能再接交换机,理论上是可以无限延伸的,当前网络就是这么构造出来。
2025-04-04 09:00:00
705
原创 多线程-进阶
CAS(一种操作机制)在执行时,会判断当前内存值是否和寄存器中的值一样,一样就修改,不一样就不操作。而 ABA 问题的本质是,在代码执行过程中,有其他线程 “插足”,让数据先从 A 变成 B,又从 B 变回 A。看似数据没变,但中间经历了变化。
2025-04-01 09:00:00
594
原创 多线程 - 初阶
代码核心问题代码中count++操作在单线程下正常,但多线程下会出问题。因为count++底层由三个 CPU 指令组成:读取(load):从内存读数据到 CPU 寄存器;计算(add):寄存器里的数据 +1;保存(save):把结果写回内存。多线程时,CPU 调度线程的顺序不可控,可能导致两个线程的指令交叉执行,最终结果比预期值(10 万)小。线程不安全的本质多个线程操作共享数据(如代码里的count)时,因操作步骤拆分且调度无序,导致数据被错误修改。它们和join类似,作用是。
2025-03-30 09:00:00
891
原创 计算机是如何工作的
PCB 就像进程的 “全能档案”,操作系统通过这些属性管理进程,如同餐厅通过顾客档案优化服务。每个属性各司其职:标识身份(PID)、管理资源位置(内存指针、文件描述符表)、跟踪状态(状态、优先级)、记录开销(记账信息)、保存进度(上下文),最终让计算机高效有序地运行。好好理解各部分之间的关系。
2025-03-15 22:08:06
825
原创 MySQL索引事务
若查询涉及到某个字段的范围筛选(如查询年龄在 20 到 30 岁之间的用户),或者需要对结果进行排序(如按时间顺序显示订单记录),B - tree 索引是很好的选择,因为它能高效地处理这类操作。但如果给笔记本做个 “索引”(搞个目录),提前记好 “哪一页写了周一的事、哪一页写了周三的事”,之后找内容时,看一眼目录(索引),直接翻到对应页就行,找得又快又准。比如点外卖选了三道菜,下单时这三道菜要么都成功加入订单,但凡其中一道菜售罄(某个操作失败),整个订单都不会成立,不会只留部分菜在订单里。
2025-03-08 11:23:24
856
原创 MySQL表的增删改查(进阶)
返回查询到的数据的 数量查找同伴同学,关键突破就是拿到这个班级的id,因为同班=在一个班,在一个班 -> name1. 一对一:2. 一对多:3. 多对多:需要创建中间表来映射两张表的关系。
2025-03-04 09:01:18
1024
原创 MySQL表的增删改查
目录1.CRUD2.新增(C)2.1语法2.2单行插入 + 全列插入2.3多行数据+指定列插入2.4如何获取当前的时间?3.查询(R)3.1全列查找语法注意3.2指定列查询语法注意3.3 查询字段为表达式表达式不包含字段表达式包含一个字段表达式包含多个字段例子实践3.4别名语法别名的解释3.5去除重复的数据语法例子3.6 order by 排序语法例子 注意3.7条件查询(where)比较运算符逻辑运算符例子基本查询and和or范围查询1.between ... and ...2.in模糊查询likeNUL
2025-02-24 19:01:06
623
原创 反射、枚举以及lambda表达式
Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息。Java 反射机制允许程序在运行时获取、操作类和对象的信息。通过Class类 、Field类、Method类、类,可获取类的构造函数、方法和字段等。其优点是增加程序灵活性与扩展性,应用于众多框架;缺点是存在性能开销且破坏封装性,使用时需注意安全。
2025-01-27 14:52:56
678
原创 数据结构--排序
int i =0;i++;j++;//输出每一趟的修改后的结果d++) {}*///那么如果我只想让你只输出发生修改了的结果//我们可以利用设计标志去记录这个情况//将这个包含在循环里面,如果这个情况发生则输出//输出发生修改后的结果d++) {i++;j++;}*/i++) {// 希尔排序的实现// 初始化 gap,并逐步减小 gapgap > 0;// 对当前步长进行插入排序i < n;
2025-01-15 11:25:23
509
原创 HashSet的常用方法及其源码展示
先计算元素的哈希值,然后根据哈希值找到元素可能存储的位置(索引),再检查该位置及其关联的链表(如果有哈希冲突)中是否存在与给定元素相等的元素。它用于获取当前迭代器位置之后的下一个元素,并将迭代器的指针向前移动一位,以便下次循环时能够获取到下一个新的元素。将获取到的下一个元素输出到控制台,并在元素后面添加一个空格,从而实现逐个元素的输出展示,直到。用于获取下一个元素并移动迭代器指针,它们共同协作实现了对集合元素的有序、完整的遍历操作。通过使用泛型,编译器可以在编译时检查元素的类型是否符合集合的要求。
2024-12-01 15:04:12
1140
原创 Java抛出自定义运行运行
1.重新生成异常的.java文件 Empty:空 Exception:异常 加起来就是 空指针异常的文件。4.在需要抛出异常的地方写上:throw new Run。2.打上extends + 运行的异常(异常的类型)3.点击ctrl+o,选着这两个快捷重写。5.若要自定义异常类型。
2024-11-30 21:15:39
291
原创 对于大根堆的计算时间复杂度的过程
接着每一层节点需要调整的次数= (每一层的节点个数 * 这一层节点需要调整的所在高度)再全部相加起来。优化答案,再结合树知识中高度的求法公式,发现两个函数的关系再优化。然后求解出每一层的节点个数+这一层节点需要调整的所在高度。利用*2T(n)构造出等差数列。
2024-11-10 20:08:36
271
原创 数据结构--二叉树
树是一种非线性的数据结构,它是由nn>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:1.有一个特殊的结点,称为根结点,根结点没有前驱结点2.除根结点外,其余结点被分成M(M > 0)个互不相交的集合3.树是递归定义的。注意:树形结构中,子树之间不能有交集,否则就不是树形结构。
2024-11-08 18:52:38
1003
原创 数据结构--栈和队列
只允许在固定的一端进行插入和删除元素操作的特殊线性表,数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。如果是两个栈(一个空,一个非空)来进行交换数据的话,特点是“倒进去”---刷题很大用处1.2栈的使用方法1.3栈的关系图栈是最底层的操作,当使用cloneable等操作时候可以延申2.队列(Queue)2.1只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表---先进先出2.2 队列的使用方法主要是区分栈,队列两者的特点!!!
2024-10-20 14:43:39
377
原创 数据结构--线性表双向链表的实现
部分方法大体上写法都大致相同,关键在于具体方法部分,比如:删除的节点就只有一个,而且这个要删除的节点就是头结点,那么这种特殊情况是在写完正常删除操作后,输入数据判断得到的结果,针对这样的情况要画图分析,一步一步慢慢思考如何设计程序代码,出错没有关系,再次调试画图看看有没有漏掉的地方,一次次修改相信最终会获得成功完成任务的代码。数据结构的核心就是,代码容易写,思考最难想的一个学习过程,由此可见画图在帮助我们理清思路,规整代码写法的时候就尤为重要!希望这篇博客能给读者在学习数据结构时提供一些帮助。
2024-10-07 19:58:26
596
1
原创 数据结构--ArrayList与顺序表
的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。int lastindexOf(Object o) 返回最后一个O的下标。选择合理的方式进行使用顺序表的方法,特别是扩容的大小,合理使用的话即可节省空间提高效率。ArrayList是一个动态类型的顺序表,即:在插入元素的过程中会自动扩容。底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表。不是线程安全的,在单线程下可以使用,在多线程中可以选择。是以泛型方式实现的,使用时必须要先实例化。是一个普通的类,实现了。
2024-10-07 14:25:34
878
原创 数据结构--包装类&简单认识泛型
包装类为基本数据类型提供了对象的表示形式,如`Integer`对应`int`、`Double`对应`double`等。在数据结构中,像`ArrayList<T>`、`HashMap<K, V>`等泛型类,可以根据实际需求指定不同的类型希望这篇博客能帮助到读者。
2024-10-02 18:58:26
591
原创 数据结构--时间和空间复杂度
在设置程序时,尽量选择设计复杂度小的程序写法来简化代码,提高代码的效率希望读者在编写程序时多思考如何编写,选择效果较好的写法。
2024-10-02 18:36:22
398
原创 JAVASE总结
/动态定义,只定义大小// 静态定义,只定义内容// 创建类field;// 字段(属性) 或者 成员变量method;// 行为 或者 成员方法// 抽象类:被abstract修饰的类// 抽象方法:被abstract修饰的方法,没有方法体// 抽象类也是类,也可以增加普通方法和属性// 面积错误写法// 实现接口的方法如果是一个接口,那么MyClass必须实现接口中定义的所有方法。正确写法@Override// 实现方法。
2024-10-01 16:49:23
1571
原创 JAVA认识异常
以上是一些常见的异常信息,针对不同的异常要根据其特点选择怎么样去修改,会事半功希望这篇博客能帮助正在学习的读者,提供一点思路和方法。
2024-10-01 16:49:15
656
原创 Java之String 类的学习
1. String类的重要性在C语言中要表示字符串只能使用字符数组或者字符指针但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字 符串应用又非常广泛,因此Java语言专门提供了String1. ==2.3.与equals不同的是,equals返回的是boolean类型,而compareTo返回的是int类型。具体比较方式:1.先按照字典次序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值2.如果前k个字符相等(k为两个字符长度最小值。
2024-09-23 23:20:35
679
原创 Java学习——图书管理系统小项目
对于各部分的代码已经加上理解的解析语句,希望这篇博客能给正在学习图书管理系统的读者提上一些看法。6.代码安排:操作,对象类型多样,便于管理将去设置成包目录的形式来安排。4.对于书的一些行为动作:增加,借阅,删除,退出,寻找,归还,展示。用户和管理员都是人员,所有将其共同部分设置成父类来加以调用。此包中包含Book(一本书)和BookList(书架)3.对象:看书用户,整理管理员。1.一本书:书名,作者,价格。2.书架:多本书的集合。
2024-09-20 19:45:29
654
原创 Java浅,深拷贝;内,外部类的学习了解
简单理解:定义了A,A里面有age和num,修改A中age变成k,拷贝成为B,B里面有k和num。简单理解:定义了A,A里面有age和num,拷贝成为B,B里面有age和num。将一个类定义在另一个类的内部。将一个类定义在一个方法的内部。
2024-09-16 21:14:43
499
原创 Java抽象类和接口的学习了解
使用interface来定义一个接口抽象类:- 抽象类是一种不能被实例化的类,它通常包含一个或多个抽象方法,这些方法只有声明没有实现,子类必须提供这些方法的具体实现。- 抽象类可以包含具体方法和变量,这些具体方法可以被子类直接继承和使用。- 抽象类使用`abstract`关键字声明,它可以有构造方法,但这些构造方法只能被子类调用。- 抽象类适用于有共同特性和行为的对象,但具体实现需要在子类中完成的情况。接口:- 接口是一种完全抽象的类,它定义了一组方法规范,但不提供实现。
2024-09-15 15:27:46
990
原创 Java继承和多态
Java 中继承允许子类继承父类属性和方法,可通过 extends 实现。多态需在继承体系下满足条件实现,有向上转型和向下转型,多态虽有优点但也存在运行效率降低等缺点,构造方法中应避免调用重写方法。希望这篇文章能够帮助读者解决遇到的一点问题。
2024-09-09 23:12:26
1232
原创 Java类和对象题目问答点
现有一个Data类,内部定义了属性x和y,在main方法中实例化了Data类,并计算了data对象中x和y的和。但是,Data类的定义存在错误,请你将这些错误修正过来,使得main方法中的求和逻辑可以正常执行。两个整数两个整数的和示例1输入:1 2 输出:3x = x;y = y;return x;return y;
2024-09-05 16:10:03
1103
原创 Java类和对象
面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干 啥),描述完成后计算机就可以识别了在java中定义类时需要用到class关键字,具体语法如下// 创建类field;// 字段(属性) 或者 成员变量method;// 行为 或者 成员方法class为定义类的关键字,ClassName为类的名字,{}中为类的主体。(关键字+类的名称+主体)//外卖平台// 食品// 商家。
2024-09-01 15:31:13
2572
原创 Java之二维数组
以2*3的为例子方法一:int[ ][ ] arr={{1,2,3},{4,5,6}};方法二:int[ ][ ] arr= new int[ ][ ]{{1,2,3},{4,5,6}};方法三:int[ ][ ] arr= new int[2][3];//初始化里面都是0。
2024-08-28 22:09:47
519
1
原创 Java数组的定义与使用
数组:可以看成是相同类型元素的一个集合。比如:一栋楼里面的房间号。数组在面对操作多个数据时发挥作用,可以适当选着使用方法,并且合理使用。希望这篇博客能帮助到读者更好的了解和使用数组。
2024-08-25 21:23:49
1414
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人