- 博客(23)
- 收藏
- 关注
原创 五层网络模型-(传输层,网络层,数据链路层)
TCP:有连接,可靠传输,面向字节流,全双工UDP:无连接,不可靠传输,面向数据报,全双工连接:虚拟连接,双方保存对方信息可靠传输:尽可能提高传输成功率,能感知到丢包;不可靠传输:只发送数据,不管其他面向字节流:读写数据以字节为单位;面向数据报:读写数据以数据报为单位;全双工:一个通信链路,支持双向通信(能读能写);半双工:一个通信链路,只支持单向通信(能读或者能写)
2026-04-21 17:29:01
478
原创 五层网络模型-应用层
满足我们日常需要的网络程序,都是在应用层,能够根据自己的需求设计应用层协议1.具体如何自定义协议?1.根据需求,明确传输什么信息例如一个外卖网站请求:用户的位置,id等等响应:商家的id,名字,位置,价格,评分等等2.约定信息组织的格式(有很多格式)一个请求响应有多行构成,响应每一行都是一个商家,每行包含某个商家信息1,肯德基(国贸店),北京市朝阳区建国门外大街,25,4.82,麦当劳(万达店),北京市朝阳区建国路99号,22,4.73,星巴克(中环店),北京市朝阳区光华路,35,4.9。
2026-04-20 23:01:32
411
1
原创 网络原理的初识
将多台计算机连接在一起,完成数据共享。1.网线直接连接2.基于集线器组建3.基于交换机组建4.基于交换机和路由器组建,例如)分公司以专线方式连接起来,即称广域网。将多个局域网连接起来,就形成广域网,其实就是互联网。
2026-03-24 16:33:49
382
原创 进阶_多线程1
1.悲观锁vs乐观锁(描述的是加锁的场景)悲观:加锁时候竞争非常激烈,就要针对这个激烈的情况做一些额外的工作乐观:加锁时候竞争不激烈,就不需要做一些额外的工作2.重量级vs轻量级锁(遇到场景后的解决方案)重量级:当悲观场景下使用,要付出更多代价(低效)轻量级:乐观场景下使用,付出代价更小(高效)3.挂起等待锁vs自旋锁挂起等待锁(重量锁的典型实现等待策略):操作系统内核级别,加锁时候发现竞争,就会使得该线程进入阻塞状态,后续需要内核进行唤醒。
2026-03-15 14:28:08
353
原创 初阶_线程3(多线程案例)
用处:减小每次创建,销毁内存的损耗,因为在线程池中取现成的线程,在应用程序可控,开销小,从操作系统创建新线程需要内核配合,不可控开销大,线程池可以省下应用程序切换到内核的开销。ThreadFactory threadFactory:创建线程的工厂,参与具体创建线程工作,通过不同的线程工厂创建出的线程相当于对属性进行不同的初始化设置。线程池相当于把线程提前创建好,放到一个地方(类似于数组),需要用时随时取,用完放回池子。int corePoolSize:核心线程数,这个线程池最少的线程,跟随线程池创建销毁。
2026-02-26 17:05:50
533
原创 初阶_多线程2(线程安全)
每个线程,有一个自己的“工作内存”(可理解为寄存器加L1,L2,L3缓存)同时这些线程共享同一个“主内存”,当一个线程循环进行上述读取变量操作时,就会把主内存中数据拷贝到工作内存中,后续另一个线程修改,也是先修改自己的工作内存,拷贝到主内存中,由于第一个线程仍然读自己的内存,因此感知不到主内存的变化。可以让后执行的线程逻辑让先执行的线程逻辑跑完,再通知他继续执行,对于jion只能让一个线程彻底执行完,那一个线程才能执行,wait也是等,但,等到另一个线程执行完notify,就可以继续走。
2026-02-19 12:24:06
989
原创 计算机如何工作
进程执行一会儿后,可能失去CPU,一段时间后继续使用进程会回到CPU上执行,就必须延续之前的状态而不能从头开始,进程在cpu运行过程中,cpu的各种寄存器就表示当前进程运行的"中间状态",目前常见操作系统:Windows系列,Unix系列,Linux系列(后端开发,服务器程序使用的主要系统),Mac OS系列,鸿蒙系列等,系统之间彼此不兼容。cpu的寄存器:cpu进行存储数据的位置,访问速度快于内存,存储空间更小更贵,主要是cpu进行执行指令各种运算时,
2026-02-04 14:27:40
839
原创 数据结构_Map和Set
TreemMap和TreeSet即java中利用搜索树实现的Map和Set,实际上用的是红黑树,而红黑树是一棵近似平衡的二叉搜索树,即在二叉搜索树的基础上+颜色以及红黑树 性质验证,关于红黑树内容后续进行详解。从 “负载因子和冲突率的关系粗略演示” 图可见,冲突率随负载因子增大而上升,且在负载因子达到一定值后,冲突率呈快速上升趋势。上面的查找适合静态查找,不会对区间进行插入和删除了,但现实中例如根据姓名查询成绩,可能查找时要进行插入和删除操作,即动态查找,那么Map和Set是一种适合动态查找的集合容器。
2026-02-03 17:46:47
1027
原创 数据结构_二叉树
层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从0至n-1的结点一一对应时称之为完全二叉树。:以某节点为根的子树中任一结点都称为该节点的子孙,如所有结点都是A的=子孙。:若有一个结点含有子节点,则这个结点称为其子节点的父节点;:从根节点开始定义,根为第一层,根的子节点为第二层。:度为0的结点为叶节点;
2025-10-27 13:08:41
986
原创 数据结构_栈和队列
队列是一种特殊的线性表,具有**先进先出(FIFO)**的特性。仅允许在一端(队尾,Tail/Rear)进行插入操作(入队,Enqueue),在另一端(队头,Head/Front)进行删除操作(出队,Dequeue)。5.设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。:借助栈的“后进先出”特性,先将链表所有节点按顺序入栈,再依次出栈打印,从而实现逆序。:利用递归的“回溯”特性,先递归遍历到链表末尾,再从后往前打印节点值,实现逆序。1.通过添加size属性纪录。
2025-10-13 20:14:12
1040
原创 数据结构_LinkList与链表
逻辑顺序实现:通过每个数据元素(通常称为 “节点”)中存储的引用(或指针) 来指示下一个(或上一个)节点的位置,从而将分散的节点串联起来,形成一个有序的逻辑序列。,效率比较低,因此ArrayList不适合做任意位置插入和删除比较多的场景。这意味着链表中的数据元素在计算机内存中不是紧密排列的,而是分散存储在不同的内存地址上。3.从堆上申请的空间,是按照一定的策略来分配的,两次申请的空间可能连续,也可能不连续。1.链式结构在逻辑上是连续的,但是在物理上不一定连续。2.现实中的结点一般都是从堆上申请出来的。
2025-09-28 19:47:08
2139
原创 数据结构_ArrayList与顺序表
ArrayList 简介类的性质:普通类,实现了 List 接口,以泛型方式实现,使用时需先实例化。实现的接口IterableCollectionListCloneable。实现表明支持随机访问;实现Cloneable表明可以克隆;实现表明支持序列化。1.ArrayList 是以泛型方式实现的,使用时必须要先实例化2.ArrayList 实现了 RandomAccess 接口,表明 ArrayList 支持随机访问。
2025-09-23 19:15:01
749
原创 数据结构_数据结构基本准备知识
一般的类和方法,只能使用具体的类型(要么是基本类型,要么是自定义的类)。若要编写能应用于多种类型的代码,这种只能用具体类型的限制会对代码束缚很大(该表述参考《Java 编程思想》对泛型的介绍)。泛型是在 JDK1.5 引入的新语法,通俗来讲,泛型就是适用于许多类型从代码角度讲,就是对类型实现了参数化。
2025-09-13 21:36:12
1068
原创 初学java_认识异常
方式:1.自定义异常,继承Exception或者RuntimeException2.实现带有一个String类型参数的构造方法,参数含义:出现异常原因以下是分别继承Exception(受查异常)和(非受查异常)的自定义异常例子及使用场景。继承Exception(受查异常)的例子自定义异常类super();自定义异常类super();登录验证方法(使用受查异常)if (!throw new UserNameException("用户名错误!");if (!
2025-09-04 23:24:21
1918
原创 初学java_String类
代码解析定义字符串s为"abababcd",使用方法从字符串末尾开始查找字符'a'最后一次出现的索引,找到后将索引值赋给index,最后输出index,结果为5。
2025-09-02 16:11:55
1020
原创 初学java_继承和多态知识梳理
和继承类似,组合也是一种表达类之间关系的方式,也是能够达到代码重用的效果。组合并没有涉及到特殊的语法(诸如extends这样的关键字),仅仅是将一个类的实例作为另外一个类的字段。》当父类与子类两个成员变量重名时,像下面n一样,那么this调用的是父类的n,要调用父类的n就只能用super.也称为后期绑定(晚绑定),即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体调用那个类的方法。当父类和子类都有同名属性的时候,通过父类引用,只能引用父类自己的成员属性。
2025-08-23 18:01:16
783
原创 初学Java_类和对象知识梳理
java是一门面向对象的语言(Object Oriented Program,简称OOP),面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对程序的认知,对于大型程序的设计、扩展以及维护都非常友好。类是用来对一个实体(对象)进行描述的,主要描述实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干什么),描述完成后计算机就可以识别。例如:生活中洗衣机作为一个类。属性:品牌、型号、价格、重量、颜色、尺寸等等功能:洗衣服、烘干等等。
2025-08-20 11:59:17
828
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅