- 博客(22)
- 收藏
- 关注
原创 深入浅出:TCP/UDP协议核心原理
我的上个博客所写的所有代码都在应用层应⽤层的java socket,都是为了完成某项业务,应用层和传输测和日常开发更紧密这次我们聊一聊传输层,网络层和数据链路层一.传输层1.端口号端⼝号范围划分0 - 1023: 知名端⼝号, HTTP, FTP, SSH等这些⼴为使⽤的应用层协议, 他们的端⼝号都是固定的.1024 - 65535: 操作系统动态分配的端⼝号. 客户端程序的端⼝号, 就是由操作系统从这个范围分配认识知名端⼝号(Well-Know Port Number)
2025-11-05 15:12:16
724
原创 走进HTML的世界
type:输入框种类---button(搭配JS使用),radio(单选框),checkbox(多选框),text(文本框),image,password(密码框),submet(提交)会出现按钮 等等。width/height: 控制宽度高度.高度和宽度⼀般改⼀个,另外⼀个会等比例缩放. 否则就会图⽚失。href:里面填写要跳转网页的url,也可以跳转内部网页,填写相对路径即可,放入#就是空链接不进行跳转。name:给input标签标明谁和谁是一起的(实现单选要用相同的name来标记)
2025-10-27 18:07:03
922
原创 揭秘OSI七层模型与TCP/IP五层架构和Socket套接字
OSI:即Open System Interconnection,开放系统互连OSI 七层网络模型是一个逻辑上的定义和规范:把网络从逻辑上分为了7层。OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。OSI 七层模型既复杂又不实用:所以 OSI 七层模型没有落地实现。
2025-10-19 17:23:38
1075
原创 双指针算法:三招解决数组难题
⼀个指针从最左端开始,另⼀个从最右端开始,然后逐渐往中间逼 近。对撞指针的终⽌条件⼀般是两个指针相遇或者错开(也可能在循环内部找到结果直接跳出循环),也就是: left == right (两个指针指向同⼀个位置) left > right (两个指针错开)快慢指针:⼜称为⻳兔赛跑算法,其基本思想就是使⽤两个移动速度不同的指针在数组或链表等序列 结构上移动。在⼀次循环中,每次让慢的指针向后移动⼀位,⽽快的指针往后移动两位,实现⼀快⼀慢。常⻅的双指针有两种形式:⼀种是对撞指针,⼀种是左右指针。
2025-09-24 20:46:32
181
原创 揭秘进程与线程:运行程序的幕后秘密
重量级锁是指用到内核提供的 mutex . 执行加锁操作, 先进入内核态. 在内核态判定当前锁是否已经被占用,如果该锁没有占用, 则加锁成功, 并切换回用户态. 如果该锁被占用, 则加锁失败. 此时线程进入锁的等待队列, 挂起. 等待被操作系统唤醒. 经历了一系列的沧海桑田, 这个锁被其他线程释放了, 操作系统也想起了这个挂起的线程, 于是唤醒这个线程, 尝试重新获取锁。要执行的任务,直接使用阻塞队列,当队列中没有任务时,线程池中的工作线程,就能够阻塞等待,可以让调用者手动指定队列进来。
2025-09-19 18:18:34
931
原创 栈--应用
1.定义:栈是⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作2.压栈:栈的插⼊操作叫做进栈/压栈/⼊栈,⼊数据在栈顶3出栈:栈的删除操作叫做出栈。出数据在栈顶Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安全的把递归的可以改为非递归二.自己实现栈。
2025-05-11 09:26:11
341
原创 二叉树的运用
⼀个结点含有⼦树的个数称为该结点的度;如上图:A的度为6⼀棵树中,所有结点度的最⼤值称为树的度;如上图:树的度为6度为0的结点称为叶结点;如上图:B、C、H、I...等节点为叶结点若⼀个结点含有⼦结点,则这个结点称为其⼦结点的⽗结点;如上图:A是B的⽗结点⼀个结点含有的⼦树的根结点称为该结点的⼦结点;如上图:B是A的孩⼦结点⼀棵树中,没有双亲结点的结点;如上图:A从根开始定义起,根为第1层,根的⼦结点为第2层,以此类推树中结点的最⼤层次;如上图:树的⾼度为4度不为0的结点;
2025-05-03 10:45:19
823
原创 链表与LinkedList
链表中储存非连续的结构,通过链表中的引用链接(地址)次序来实现的。简单的无头单向不循环先定义一个链表 next要用ListNode是一位提存入的是链表而链表就是用ListNode这个方法创建的注意:1.函数方法结束局部变量就会被回收 2. head是对象的属性 3.head !=null=> head =null把整个链表的所有元素全部遍历完 head.next !=null =>head.next =null此时head指向的是最
2025-04-30 20:43:48
248
原创 顺序表与ArrayList
extends E>里面的E代表的是ArrayList<E>传入的类类型(泛型参数)1.传入的类型一定实现了Collection接口或者Collection接口子类。extends E>c)(通配符的上界)调用不带参数的构造方法之后在第一次add的时候会将数组自动分配10个大小。构造一个长度为initialCapacity(传参的值)(1)ArrayList()不传参数。二.ArrayList的使用。构造一个容量为n的列表。
2025-04-22 08:25:40
241
原创 泛型理解与应用
通俗地来讲反应就是适用于许多许多类型,你要什么类型我给你传什么类型。就算放错了编译器也会帮你检查(传递类型的)T1,T2...不能是基本类型,只能是类类型。
2025-04-17 22:58:17
440
原创 Java中字符串(string类)
如图如果str1先由栈区读取地址然后存进堆区则这个堆区的一部分就是常量池当str2的值与str1的值相同时则先回在堆区的常量池中查找如果有之前存进去的则str2会拿到之前str1存进栈区中的地址此时str1完全等于str2当str2再次存储的时候,先会检查字符串常量池当中是否存在"abc"常量,如果存在,则不再重复存储。则这个会打印true。
2025-04-14 22:22:26
861
原创 c语言之最大公约数与最小公倍数
printf("请输入你所计算公因数的两个数");z = x;x = y;y = z;while (x!printf("(%ld,%ld)的最大公因数=%ld\n", x1, y1, x);//求最大公因数printf("{%ld,%ld}的最小公倍数=%ld\n", x1, y1, x1 * y1 / x);//求最小公倍数return 0;
2025-01-12 16:44:22
704
原创 让选择和循环不再成为你的绊脚石!!!
程序设计的结构(if,switch二.关系操作符这里为什么我不先写这两个结构呢(因为如果没有关系操作符结构也就无法正常运行就会导致许多bug出现。>大于运算符 =大于等于运算符
2024-12-03 11:38:16
565
原创 大学计算机学习计划及未来规划
我学的是计算机科学与技术专业 大一上学完c语言大一下学JAVA和c的数据结构和算法 我已经报名了2025年4月的蓝桥杯 C/C++组 大一蓝桥杯试试水 大二一定要拿奖 我先要成为一个鸿蒙软件开发工程师 我会在假期时学习arcts 我还没有一个特备想要进入的公司如果说硬是要有的话是希望为鸿蒙开发近一尽力量。我是来自长春电子科技学院的王田思毅。
2024-11-24 12:55:01
267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅