- 博客(42)
- 收藏
- 关注
原创 HTML基础
HTML是超文本标记语言超文本:通过链接和交互式方式来组织和呈现信息的文本形式,不仅仅有文本,还肯能包含图片,音等等标记语言:由标签构成的语言。
2025-11-09 13:44:15
538
原创 Java--HTTP(上)
HTTP(超文本传输协议)是一种应用非常广泛的应用层协议。HTTP在传输层主要依赖的是TCP协议,但是从HTTP3.0开始,切换到了UDP这是因为HTTP3.0应用层这里自己实现了可靠传输,而TCP特别影响性能。
2025-11-07 19:16:58
1490
原创 Java--网络原理
局域网的覆盖范围通常在几百米到几公里范围内,传输速度较快。广域网的覆盖范围跨越城市、国家甚至大洲,覆盖地理范围广泛,但传送速度较慢,受举例和中继设备影响。广域网是全球范围的网络互联。
2025-10-22 16:17:29
986
原创 Java--网络编程(二)
翻译服务器和回显服务器的区别就是对收到的信息进行处理的方式不同,回显服务器我们直接返回的字符串,翻译服务器我们通过 HashMap 来获取翻译后的结果并返回,我们用 HashMap 来模拟字典,当我们输入单词的时候,返回相对应的意思。为了方便,此处我们直接继承回显服务器(记得改变客户端端口号)
2025-10-13 22:10:18
219
原创 Java--网络编程(一)
Socket是一种通信机制,允许不同机器上的进程通过网络进行数据交换,他是应用层与传输层之间的桥梁,封装了TCP/IP族协议的细节针对传输层协议分为三类:1.流套接字:使用传输层TCP协议(Transmission Control Protocol)特点:有连接,可靠传输,面向字节流2.数据报套接字:使用传输层UDP协议(User Datagram Protocol)特点:无连接,不可靠传输,面向数据报3.原始套接字(不重要):⽤于⾃定义传输层协议,⽤于读写内核没有处理的IP协议数据。
2025-10-11 16:47:44
539
原创 Java--文件操作和IO
File 类是 Java 中用于表示文件和目录路径名的抽象表示形式。它允许应用程序对文件和目录进行各种操作,如创建、删除、重命名以及获取文件属性等.代表当前目录..代表父目录。
2025-10-08 21:26:49
652
原创 Java--多线程基础知识(四)
偏向锁不是真的加锁,⽽只是在锁的对象头中记录⼀个标记(记录该锁所属的线程).如果没有其他线程参与竞争锁,那么就不会真正执⾏加锁操作,从⽽降低程序开销.⼀旦真的涉及到其他的线程竞争,再取 消偏向锁状态,进⼊轻量级锁状态.
2025-10-08 14:58:37
927
原创 Java--多线程知识(四)
创建两个线程 t1,t2。再创建一个阻塞队列,通过阻塞队列连接t1,t2。由于消费者被限制了消费速度,所以当阻塞队列满了之后,生产者的生产速度也受到了影响,会形成当消费者消费之后,阻塞队列有了空间,生产者才可以继续生产。
2025-10-03 13:23:51
338
原创 Java--多线程基础知识(三)
继续上次的线程知识:我们可以看到,t2是在t1运行结束之后才进行的,这就是锁的作用,锁的特点:1.锁是互斥的,当一个线程占用锁之后,其他线程是无法再次进入锁的2.线程是无法被抢占的,前提是线程对同一个实例对象上锁。线程安全问题:1.线程的随即调度2.多个线程修改同一个变量3.修改操作不是原子4.内存可见性5.指令重排序其中volitile关键字可以处理指令重排序。当使用volatile关键字之后,每次写入volatile变量都会立即刷新到主内存。
2025-09-18 22:00:51
802
原创 Java--多线程基础知识(二)
在代码中,我们将 flg 作为标志位,当代码运行的时候我们需要输入任意键为就可以改变 flg,以此来达到停止代码运行的作用;注意:flg 必须作为全局变量,因为 lambda 捕获的局部变量是不能被修改的,这是为了确保代码的安全性和一致性,由于我们要对flg 进行修改,所以我们要将 flg 作为全局变量。
2025-09-15 22:13:35
526
原创 Java-多线程基础知识(一)
我们创建一个方法,让这个方法继承 Thread ,然后对 run 方法进行重写,重写的内容就是我们希望线程做的工作。因为线程的执行是随机的,例如上述代码有 main 线程 和 t 线程,此时执行之后会出现以下结果:注意:线程之间的运行可能会相互影响,而进程是独立的,不受其他进程影响。t.join 可以让 main 线程等待 t 线程结束之后再运行。
2025-09-09 21:05:20
771
原创 Java——异常
throw new NullPointerException("数组为null");⾃定义异常类,然后继承⾃Exception或者RunTimeException⾃定义异常通常会继承⾃Exception或者RuntimeException继承⾃Exception的异常默认是受查异常继承⾃RuntimeException的异常默认是⾮受查异常。
2025-08-07 11:26:30
641
原创 Java——多态
通俗来说,就是多种形态,具体点就是去完成某个⾏为,当不同的对象去完成时会产⽣出不同的状态。例:吃饭 这种行为在不同的动物身上有不同的状态,例如 猫吃猫粮,狗吃狗粮。狗不会吃猫粮,猫也不会吃狗粮,这就导致了多态的发生。
2025-08-06 12:37:48
380
原创 Java——抽象类和接口
如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类,使用 abstract 关键字修饰。例:我们现在有三个类 图形类,三角形类和圆形类,每个类中都有一个 draw 方法,三角形类和圆形类要画出来很简单,就是三角形和原型,但是 图形类 要怎么画,你是没有办法画出来的,因为你没有足够的信息可以帮助你描绘出来具体的对象。我们可以看到,在一个抽象类当中不止可以有抽象方法,还可以有普通的方法和属性。
2025-08-06 12:37:36
917
原创 MySQL——数据库设计与联合查询
数据库的范式是⼀组规则。在设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数 据库,这些不同的规范要求被称为不同的范式。
2025-08-05 12:38:14
884
原创 MySQL——增删改查操作
CRUD就是对数据库中的内容进行增删改查操作。1.Create (创建) 2.Retrieve(读取)3.Update(更新) 4.Delete(删除)
2025-08-03 11:56:34
363
原创 MySQL——视图
视图的本质就是一个虚拟表,基于一个或多个基础表生成,不独立存储数据。可以像操作普通表一样对视图进行管理,视图本身是不占用物理存储空间的。列出所有视图:查看视图定义:视图的修改: 视图的删除:三.视图不可更新的情况:1.创建视图时使⽤聚合函数的视图2.创建视图时使⽤ distinct3.创建视图时使⽤ group bt 以及使⽤ having⼦句4.创建视图时使用 union 已经 union all 语句。5.查询列表中使用子查询。6.在 from ⼦句中引
2025-08-01 20:18:14
356
原创 哈希函数的实现
通过 key 来获取 val 比较简单,我们可以通过 key % array.length 来获取数组的下标值,然后遍历这个下标的所有数组,如果 找到了 key,我们就可以返回他的 val,如果没有找到,我们就返回一个-1即可。,如果超标了那麽我们就需要对哈希表重新设计,我们采用的是将 原数组的容量扩大一倍 来重新设计哈希函数,原理也很简单:将原数组遍历一下,将每个元素重新插入到新数组就可以。以上 哈希 都是按 int 类型来插入和获取值的,那么其他的类型其实也是可以的,此时我们就需要用到泛型了。
2025-07-19 14:07:32
278
原创 搜索树的基础功能实现
null && cur.right == null 的三种情况,比如我们要删除节点 cur,cur 节点又有cur ==root 和 cur!要找个新节点来替换掉 cur 节点的值的要求要符合搜索树的性质(根节点的值大于所有左子树节点的值,根节点的值小于所有右子树节点的值),我们有两个方向可以去寻找新的节点的值,第一个是在 cur 节点的左子树寻找左子树的最大值的节点来替代,第二种是在 cur 节点的右子树寻找右子树最小值的节点来替代。这样找到的节点就可以满足我们搜索树的性质了。
2025-07-15 15:37:09
466
原创 java常见排序算法的实现(下篇)
冒泡排序的思想比较简单,我们有两个变量 i 和 j ,其中 i 是指要走的趟数,比如我们有一个数组elem{ 1,3,4,2,5 },数组里面有五个元素,我们想要将数组里面的元素按照从小到大排列,我们会将 i 初始化为 elem.length - 1,j 初始化为 0 ,我们将 elem[ j ] 和 elem[ j+1 ]来比较,如果elem[ j ]
2025-07-15 15:36:54
1103
原创 java常见排序算法的实现(上篇)
我们现在有一组数组 elem { 5 ,18,7,21,9 } ,我们现在想将他按从小到大的顺序排列,在直接插入排序中,我们将用到三个变量 j,i,tem。i 将初始化为下标为 1 的值,tem 将初始化为下标为 i 的值,j 初始化为下标为 i - 1 的值。以上准备工作就完成了,我们将 j 的值与 tem 的值来比较,如果 j 的值大于 tem 的值,我们就令 elem[ j +1 ] = elem[ j ];
2025-07-13 12:18:53
820
原创 java堆的创建与基础代码解析(图文)
创建大根堆,以下是前置基础代码。(array 是需要被调整为大根堆的数组,elem 是用来展现array被调整之后为大根堆的数组)
2025-07-12 18:49:47
908
原创 Java二叉树基础功能代码详解与实现(下篇)
给定两个整数数组preorder和inorder,其中preorder是二叉树的inorder是同一棵树的通过前序遍历我们可以得到整棵树的根节点,在中序遍历中,根节点的左边是左子树,右边是右子树。以例子来说,通过 preorder 我们可以得到根节点为 3 , 通过 inorder 得到 9 为左子树节点,15 20 7 为右子树节点,通过这种方式,我们可以找到左子树的左子树.....类推下去,最后把所构建的子树组合在一起,就可以将我们的二叉树构建完成了。
2025-07-10 18:39:54
802
原创 Java二叉树基础功能代码详解与实现(上篇)
遍历这东西,其实以上三种遍历方式的代码实现都差不多,我们以前序遍历为例,在思路上,我们以递归为主,先打印根节点,然后打印左树和右树,在打印左树和右树的时候,以新的遇到的节点为根节点,以此类推,问题简化为叶子节点为根节点时候的打印,这时候只需要打印一下叶子节点就OK了。想要获取第K层节点的个数,采用递归的思路,逐渐递归到K层的节点,此时我们需要返回一个 1 来记下当前节点,通过递归的方式来从第K层不断返回值,最后最终的值就是我们要求的第K层的值。通过以上思路,我们可以初步具备递归思路的雏形,一直递归下去,
2025-05-31 15:04:53
932
原创 Java链表的详解和搭建
链表跟顺序表大同小异,但各有各的优缺点。链表中的单个元素,我们称之为节点,每个节点呢都有两个属于节点的属性~一个是值,一个是地址。值很通俗,就是这个节点的值,也是我们在链表里面存储的值。地址呢是指向下一个链表的,毕竟是链表,我们需要将各个节点连接起来,那么这之中的联系起来的东西就是地址,就像是火车车厢和火车连结点之间的关系。顺序表更方便读取不同位置上的值。而链表更方便在表中增加和删除数值。
2025-04-26 10:00:41
784
原创 Java 顺序表的讲解和搭建
首先为大家展示将要创建的顺序表的功能,为了方便使用,我们将功能定义在了接口里面:接下来我们会将接口里面的功能具体实现并给出详细的讲解:首先我们先为顺序表提供必要的属性:值 和 位置 以及 数组等等和实现接入接口:1.add(val)方法首先让我们来实现第一个功能 : 在顺序表里面增加值,默认在最后面增加。这时候有几个我们需要考虑的事情,那就是顺序表的状态是空的还是满的亦或者是有空余的。需要分不同情况来讨论了:1)如果顺序表为空的,我们可以直接把 val 方法pos = 0 的位置。2)如果顺
2025-04-22 21:48:15
831
原创 Java Clonable 接口和深拷贝详解
如下代码:我们创建了一个Student类来接入了 Clonable 接口在创建过程中我们可以发现,当我们的 Student 类 接入Clonable接口的时候,即使没有对里面的方法进行重写,依然没有报错,这是因为Clonable里面是空的。但我们依然需要重写以下方法,否则是无法正常使用的。在创建完以上代码之后,我们就可以开始创建测试类了。观察以上代码,在创建测试类的时候,clone 是报错的,这是由于声明异常造成的。我们需要将以上main 所在的行修改为以上代码,就可以解决这个报错了。
2025-04-04 15:29:49
427
原创 Java内部类和Object类详解
内部类就是将一个类定义在另一个类内部,前者称为内部类,后者称为外部类。未被static修饰的成员内部类。被static修饰的内部成员类称为静态内部类定义在外部类的⽅法中或者{}中的类。由于内部类使用的非常少,本篇的叙述较少。没有类名的局部内部类,通常用于接口或者抽象类的快速实现。匿名内部类通常⽤ 于创建只需使⽤⼀次的类。
2025-04-03 21:35:59
991
原创 Java :数组篇
T [ ] 数组名 = new T [N ];T : 表示数组中存放数据的类型。T [ ] : 表示数组的类型。N :表示数组的长度。
2025-03-08 17:11:27
1243
原创 C语言分支和循环语句
C语句可分为以下五类:1.表达式语句 2.函数调用语句3.控制语句4.复合语句 5.空语句本章后面介绍的是控制语句C语言中有九种控制语句,可分为以下三类:1.条件判断语句也叫分支语句 :if 语句、switch 语句;2.循环执行语句 : do while 语句 、while 语句、for 语句;3.转向语句 :break 语句、goto 语句、continue 语句、return 语句;
2025-02-16 13:48:20
1257
ja【Java编程教育】JavaSE阶段性考核试卷解析:涵盖选择题与编程题的详细解答及知识点巩固
2025-05-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅