- 博客(14)
- 收藏
- 关注
原创 JavaEE初阶 --网络原理 -- TCP/ IP
现在有一个场景,就是两个人发消息,你给他发了条消息,只有当你收到他的回复之后,你才能知道对方收到了你的消息,他的回复就是应答报文(ack报文),但是如果你发了两条信息,对方要回答的结果是两个不同的结果,但是网络上,经常会出现后发先到的情况,结果你的消息就收错了,为了解决上述问题,就需要针对消息进行编号,给发送的消息分配一个序号,同时应答报文给出确认信号,真实的 TCP 数据传输也是引入了序号和确认序号。滑动窗口,批量发送,窗口越大,相当于批量的数据越多,整体的速度就越快,但是,是越快越好吗?
2023-07-12 10:16:08
232
1
原创 JavaEE 初阶 -- 网络原理初识 & 网络编程套接字
一个协议太复杂,就可以拆分为多个协议,协议是拆分很多,存在有些小的协议,作用或者定位是类似的,就可以针对这些小协议,进行分类,同时再这些不同的类别,进行分层,分层就是相当于约定了层级与层级之间的调用关系,要求上层协议调用下层协议,下层协议给上层提供支持,不能跨层调用。这里只是把数据写入到内存的缓冲区中,等到缓冲区满了,才会真正写网卡,但是我们可以手动刷新缓冲区,让数据立即被写入网卡,就是使用 printWriter.flush(),当然了读取也是有缓冲区的,有两个缓冲区,接收缓冲区和发送缓冲区。
2023-07-06 15:22:20
275
1
原创 JavaEE 初阶 -- 文件操作 IO
文本文件,存储的是文本,文本文件的内容都是由ascii字符构成的,对于ascii字符来说,表示范围0~127,后来,又搞了一些其它的编码方式,utf8之类的,就可以针对其它语言文字符号进行编码了,utf8,就可以想象成,一个更大的表,但是始终是有限的。比如你要去一个地方见一个朋友,但是你不知道怎么走,所以他给你一个路径,告诉你在某某标志建筑物开始,先直走,后左转,再直走,右转就到了,这种就是绝对路径,还有一种就是你告诉他你现在在哪个位置,这个位置其实离得比较近了,然后他告诉你怎么走,这种就是相对路径。
2023-07-02 23:58:23
241
1
原创 JavaEE 初阶 -- 多线程进阶
读写锁就是把读操作和写操作分别进行加锁.读锁和读锁之间不互斥.写锁和写锁之间互斥.写锁和读锁之间互斥.读写锁最主要用在 “频繁读, 不频繁写” 的场景中如果获取锁失败, 立即再尝试获取锁, 无限循环, 直到获取到锁为止. 第一次获取锁失败, 第二次的尝试会在极短的时间内到来. 一旦锁被其他线程释放, 就能第一时间获取到锁.相比于挂起等待锁:优点: 没有放弃 CPU 资源, 一旦锁被释放就能第一时间获取到锁, 更高效. 在锁持有时间比较短的场景下非常有用.
2023-06-30 15:34:57
311
原创 数据结构之集合类&包装类&简单认识泛型
我们可以看到,所有的接口和类,除了Map,都实现了Iterable接口,这个接口是迭代器接口,也就是说,实现了这个接口的所有的类都能迭代,就是利用foreach来遍历我们的集合。接下来,回到Collection接口,要使用Collection接口中的方法,因为它是个接口,不能直接new,所以我们用ArrayList类来实现这个接口。我们可以看到,TreeMap中的put方法是具有比较器的功能的,也就是每次put都会比较,而HashMap中的put方法,我们没有看到比较器。写一个泛型类,找出数组中的最大值。
2023-06-28 15:06:34
159
1
原创 JavaEE 初阶 -- 多线程基础
t就是我们创建的线程,在一个进程中,至少会有一个线程,在一个java进程中,就会有一个调用main方法的线程,这个线程是系统自己创建的,也可以称为是主线程,所以 t 线程和main线程就是属于并发执行的关系,从宏观上讲是并行+并发的(取决于内部的调度),我们是区分不了到底是哪一个的,多个线程在CPU上调度执行顺序是随机的,而内部的调度虽然有优先级,但是这个优先级对于系统来说,只是建议,至于要怎么调度,还是得看系统的(阳奉阴违)。但是,如果是在进程的那种情况下,在不同的虚拟地址的情况下,这种写法就会失效。
2023-06-26 15:46:56
263
1
原创 MySQL 基础
比如:对于double(3,1)数据类型的,原表中0.5,59.9,99.9都是合法的,但是我们在select中把他们相加后,变成了有效数字是4位了,但是对于查询出来的表是可以的。在插入数据时,会先拿着那个要插入的约束数据去父表里面查,如果有这个数据,那么才会插入成功,插入失败,自增主键还是会被浪费掉,如果父表中存在没有被子表引用的那一列,是可以进行删除和修改的。在子表插入新的记录的时候,就会先根据对应的值,在父表中先查询,查询找到之后(先得确定该数据存在),才能执行后续的操作。
2023-06-24 21:36:44
56
1
原创 Java 知识点汇总 -- 深度版
上面这种是非受查异常,我们看看受查异常的:自定义异常通常会继承自 Exception 或者 RuntimeException(其它的非受查异常的类也可以)继承自 Exception 的异常默认是受查异常继承自 RuntimeException 的异常默认是非受查异常.Throwable:是异常体系的顶层类,其派生出两个重要的子类,Error和ExceptionErrorJVM和,一旦发生回力乏术。Exception:异常产生后程序员可以通过代码进行处理,使程序继续执行。比如:感冒、发烧。
2023-06-21 14:46:34
348
原创 计算机是如何工作的
如上所述,进程是操作系统进行资源分配的最小单位,这意味着各个进程互相之间是无法感受到对方存在的,这就是操作系统抽象出进程这一概念的初衷,这样便带来了进程之间互相具备”隔离性(Isolation)“。但现代的应用,要完成一个复杂的业务需求,往往无法通过一个进程独立完成,总是需要进程和进程进行配合地达到应用的目的,如此,进程之间就需要有进行“信息交换“的需求。系统运行起来有接近200个进程,但是电脑的CPU就6核12线程(6个干活的人,干12个人的事情),那这么多任务是怎么一起执行的?
2023-06-19 14:49:01
78
原创 JDBC 编程
这个API由 java.sql.*,javax.sql.*包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问但是数据库有很多种,他们出自不同的厂商,所以他们各自提供的API都是不一样的,所以java创建了一个API称为JDBC,这组API包含了一些类和一些方法,通过这些类和方法可以实现对数据库的操作,所以各大厂商也接受了这种方式,java组织各大厂商提供他们各自的“数据库驱动包”来和java的JDBC对接。2.性能比statemen高。
2023-06-18 09:46:35
56
1
原创 MySQL 中的索引和事务
事务的本质就是把多个sql语句打包成一个整体,要么全都执行,要么一个都不执行(不是真的不执行,而是执行一半出错了后,选择恢复现场,把数据还原回去,叫做“回滚”,回滚需要额外的部分来记录事务中的操作步骤,数据库中专门有个来记录事务的日志),而不会出现执行一半的操作(原子性),使用事务的时候,执行sql的开销更大,效率更低。树型结构的是索引,如果这一列不能比较,就无法建立索引,mysql的各种类型都能比较,如数字,字符串,时间日期等。创建索引:create index 索引名 on 表名(列名);
2023-06-17 12:51:19
65
1
原创 反射、枚举、lambda
Lambda 表达式中存在变量捕获 ,了解了变量捕获之后,我们才能更好的理解Lambda 表达式的作用域。所以我们在写自己的构造方法时,一个类继承了另外一个类,要帮助这个类进行初始化,这里需要传4个参数来反射过去,参数列表先写父的再写子的。其中,values方法在枚举类没有,因为我们自己写的枚举类都默认继承枚举类Enum,而这个Enum类是抽象类。Lambda表达式的优点很明显,在代码层次上来说,使代码变得非常的简洁。如果是枚举就抛异常,说明枚举通过反射在类外根本拿不到枚举对象,所以枚举是非常安全的!
2023-06-16 09:45:35
333
1
原创 泛型与泛型进阶
通俗讲就是:返回的Object数组里面,可能存放的是任何的数据类型,可能是String,可能是Person,运行的时候,直接转给Integer类型的数组,编译器认为是不安全的。我们知道了它把elementData数组的类型强制转换成了E类型的,这种是官方的写法,也是最标准的写法。它定义了一个Object类型的数组,包括它new的时候都是new一个Object的数组。在编译的过程当中,将所有的T替换为Object这种机制,我们称为:擦除机制。那么它是怎么搞成泛型的呢?
2023-06-15 09:10:27
140
1
原创 Map & Set
需要用到替换法进行删除,即先找到cur右子树中的最小值,然后与cur的值替换,然后删除这个最小值,即targetP.left = target.right 注意,这个最小值如果是cur的右子树的第一个节点的话,那么就是targetP.right = target.right;性能分析:插入和删除都必须经过查找,那么查找一颗二叉搜索树,最优的情况下就是树的高度,即logN, 但是如果这棵树是单分支的树,那么其平均比较次数就是N/2,所以二叉搜索树的时间复杂度是O(N)
2023-06-14 16:35:27
61
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人