javaEE
文章平均质量分 90
javaEE内容介绍
南汐以墨
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
网络探索之旅:网络原理
这个ack报文同时涉及到另一个事“延时应答”,那么此时,没有立刻返回,而此时,业务数据在这个延时时间内完成了计算,要返回了,所以此时,ack报文信息,就不用单独返回了,就直接合并在业务数据中直接返回即可。实际情况是发送方第一次重传的时候,超时时间是t1,重传过后,任然是没有ACK返回,此时还会继续重传,此时的重传时间是t2,而这个t2 往往是 大于 t1的,以此类推。比如,当前接收方的缓冲区满了,暂时不需要发送数据过来处理,此时呢,就会把当前的ack报文中窗口大小设置为0,告诉发送方,缓冲区满了。原创 2025-03-25 17:34:59 · 830 阅读 · 0 评论 -
网络探索之旅:网络原理(第三弹)
通俗的来说,点外卖支付的时候,因为网络卡顿,点击了两次支付按钮,但此时只会生成一个支付订单,商家也只会收到一个订单。对于浏览器保存的cookie,也是手动删除的,删除过后,再次请求,响应就会再次设置cookie。但是,黑客已经入侵这个路由器了,所以,我发的密钥也是无用了,毕竟黑客获取到后,拿解密就行了。HTTP/3.0:最新的HTTP规范,与前面不同的是,它使用的是UDP传输而不是TCP传输。这两个东西是比较有意思的,就是说POST使用的场景,GET也是可以使用的,GET使用的场景。原创 2025-04-05 00:28:10 · 925 阅读 · 0 评论 -
网络探索之旅:网络原理(第二弹)
这是为了如若,传输目的是错误的,即IP地址是不存在的,如若一直是发送当前的数据包,就会占用网络带宽资源,所以生存时间规定它只能存活多长时间,时间到了,就被当前的路由器丢弃。当一个很大的数据包需要通过分片传输时,每个分片都会携带相同的“标识”值,以便接收端区分哪些数据包是一个原始数据包的,并正确的讲它们组合在一起。公网:公网指的是开放给所有人访问的网络,最典型的例子就是互联网。前四位代表的是网络号,最后一位1代表的是主机号(同一网段下,网络号相同,主机号不同,不同网段下,网络号必须不同)原创 2025-03-29 19:21:07 · 1099 阅读 · 0 评论 -
网络世界探索之旅:网络编程
那么在之前呢,小编也是介绍到了网络的一些相关知识,特别是TCP/IP模型,也是着重介绍了一番。那么今天小编要分享的是基于TCP、UDP的网络编程。那么对于网络编程,这个又是个什么东东呢?网络编程:是指编写能够通过计算机网络进行通讯的程序。那么接下来的网络编程讲解,将以服务器和客户端的模型来展开。服务器:是指在网络上提供资源和服务的计算机或程序。可以是一台物理机器,也可以是在多台机器上运行的软件。客户端:是指那些用来访问服务器提供的资源和服务的应用程序或设备。原创 2025-03-22 20:28:47 · 878 阅读 · 0 评论 -
网络世界探索之旅:初始网络
此时网络层也是接近底层了,所以此时呢,我们对于些个细节方面,系统提供的API也是完善好了,所以对于这些个调用过程,我们无需担心了,传输层会干它该干的活的。这是因为,如若我们网络中,两个主机之间发送的数据,其解析数据的时候,它们解析的标准是各自独有的,那么此时的网络通信变得毫无意义是,就像是鸡同鸭讲。这是因为,TCP/IP模型是早于OSI模型,在二十世纪七十年代,随着ARPANET的普及而去广泛使用了,OSI模型则是在二十世纪八十年代提出的。在网络诞生的时候,网络可是个“稀罕”玩意,在军事领域中。原创 2025-03-14 13:09:53 · 710 阅读 · 0 评论 -
探索文件IO奥秘:操作文件IO
此时呢,如若不主动释放资源,一直添加,而这个表呢,也是有限的空间,填满后,后续打开文件的操作就会失败,而不主动释放的资源,导致的问题呢,也就叫“文件资源泄露”这样的格式也是没有问题,但是,使用完InputStream这个操作之后,那么我们最后一定要调用close()方法,关闭资源操作,但也不排除真忘了。而上面讲到的四个类,它们是抽象类,真正在工作的,并不是它们,而是众多实现它们的类。那么有了文件之后,我们肯定是要对它”动手动脚“的,所以接下来分享的是文件的操作。值得注意的是,这里的输入/输出是认为的定义。原创 2025-03-05 20:36:27 · 930 阅读 · 0 评论 -
探索文件IO奥秘:初识文件
exFAT:设计用于闪存驱动器,解决了FAT32的一些局限性,如支持更大的文件大小和分区大小,但缺乏高级的安全功能。Btrfs:新一代的文件系统,旨在解决ext系列文件系统的局限性,提供快照、透明压缩、子卷管理等高级功能。FAT32:较老的文件系统,兼容性好但有单个文件最大4GB的限制,并且不支持很多现代的安全特性。这些文件按照一定的格式命名,并存储在特定的目录中,操作系统或者应用程序能够正确访问。值得注意的是,由于是需要移动读写头,所以其速度是较低的,同时其耐用可靠性也不是很高,原创 2025-03-04 22:20:26 · 695 阅读 · 0 评论 -
多线程之旅:锁策略(2)
drainPermits():获取并返回立即可用的所有许可,即消耗所有许可,即原本有三个信号量,那就调用这个方法后,所有许可没有了,执行acquire就会阻塞,直到释放一个许可。既然是一条cpu指令执行操作,就是很大程度上避免了多线程编程,也多线程编程提供这样的一个思路,就是无锁化编程,毕竟加锁操作,是要增加资源开销的。ok,一套下来,诶发现这个CAS是不是还挺好用的,但是呢,一个事物有好的一面,也有不好的一面。这个代码就是说,让一共有20个任务,然后线程池中存储4个任务,submit执行完任务后,原创 2025-02-28 19:36:30 · 1017 阅读 · 0 评论 -
多线程之旅:锁策略
小编假设这个女孩子是不忙的,所以小编是直接找到女孩子了,然后就问她可不可以一起看电影,如若是真的不忙,还答应了,那就一起去了,此时如果是忙的,那么就下次再来(我们是没有加锁的,但是此时也是可以得到访问冲突了)悲观锁:假设并发冲突是频繁发生的,此时呢,没有更新数据之前,就可以加锁,从而导致其他线程无法访问该资源。那么这个锁策略是比较广泛的内容,包括不限于锁的类型、锁的粒度、锁的实现方式、锁的公平性等。我下午2点钟约你看电影行不?值得注意的是,这个锁升级的过程,它不是可逆的,只能一步步变“大”,变“重”原创 2025-02-27 21:22:03 · 732 阅读 · 0 评论 -
多线程之旅:线程池与定时器
ok,今天小编接着来介绍下线程池与定时器。那么,同样的请出我们今天的第一位主角那么之前小编分享过了如何创建线程和启动线程了,那么为什么还需要个线程池呢?回到最初讲到线程的时候,线程为什么要引入呢?这是因为进程太“重”,频繁的进行创建销毁,需要消耗资源较大。此时就引入了线程。同样,随着业务量对性能要求的提高,此时线程不断的频繁创建销毁,那么此时这笔开销,就显的不能忽略不计了。那么这就引入了一个线程池。。线程池,就是提前从系统那边申请好线程资源,放到一个地方,此时,后面谁需要线程就从这里取。原创 2025-02-19 10:50:55 · 972 阅读 · 0 评论 -
多线程之旅:单例模式以及生产者消费者模型
这是因为,加锁操作也是会消耗资源,那么此时如若再次调用这个方法,还得加锁一次,所以造成一定性能浪费,不如在外面套个判断语句,进行提高点效率。所以为了解决这个问题,那么我们此时可以在两个服务器中间,设置一个容器,起到一个过度、缓冲作用。此时在多线程环境中,会出现线程安全问题了,为了解决这个问题,所以分别在这两个方法进行加锁操作。此时,原本没有容器的时候,服务器A与服务器B的耦合度较高,加入容器后,耦合度就会下降。那么某一时刻,传给服务器A的流量突然增大,此时服务器A的流量也要流入到服务器B,原创 2025-02-16 21:04:17 · 774 阅读 · 0 评论 -
多线之旅:wait 与 notify
1.notify需要在同步方法或者同步块中使用,因为该方法是去通知可能等待该对象的对象锁的其他线程,并使它们重新获取锁资源。3.notify方法执行完后,不会立即释放当前锁资源,而是还会等到同步方法,或者同步块执行完。在多线程环境下,由于线程调度的不确定性,所以我们有时候无法很好的去保证其线程的执行顺序。2.如若是多个线程进行等待,那么此时唤醒线程,也是随机的,没有所谓的“先来后到之说”唤醒后,所有线程需要重新获取锁,获取锁的过程是系统决定,依然是具有不确定性。A线程,打印A,B线程中等待,C等待B线程。原创 2025-02-14 17:23:24 · 489 阅读 · 0 评论 -
多线程之旅:开启多线程安全之门的钥匙
意思就是说,加锁的时候判定下,当前这个锁是否是被占用状态,是被哪个线程占用了,如若是当前线程对这个锁进行多次加锁,此时后续的加锁将不会进行真正的加锁操作。所以,我们可以这样子,这个房间内我加一把锁,A进去之后,锁住房间,期间内不能让其他人进去,等A说完后,再把锁给其他人,按照刚刚的方法。就是说呢,A、B、C三个线程,然后,A线程执行完,下次系统分配资源执行的时候,不知道是B先执行,还是C先执行,具有不确定性。值得注意的是,锁是不可被抢占,一个线程拿到了锁,其他线程要想拿到这个锁,必须等待这个锁被释放。原创 2025-01-22 23:26:51 · 932 阅读 · 0 评论 -
多线程之旅:线程安全问题
这两个是独立操作,即变量中,没有依赖关系,那么此时,编译器有可能把flag = true,放到numbe = 42之前执行,此时很显然,如若出现这样的情况,那么t2线程中的if语句就会为真,执行打印代码。但是,t2线程中,当用户执行输入的时候,n的值改变,这个值是写回到内存中的,t1线程读取n的值,是在寄存器中了,很明显,位置不一样,t1线程感知不到n的变化,那么就无法结束while循环。我们之前说过线程的调度是具有不确定性的,所以执行的结果如若没有锁的加持下,结果也是不唯一。原创 2025-01-21 22:34:25 · 1122 阅读 · 0 评论 -
多线程之旅:属性及其基本操作
上次分享到了,多线程中是是如何创建的,那么接下来,小编继续分享下多线程的相关知识。多线程中的一些基本属性。原创 2025-01-12 22:44:45 · 1072 阅读 · 0 评论 -
多线程之旅:认识线程
进程。原创 2024-12-04 15:14:07 · 1020 阅读 · 0 评论 -
探秘计算机内部秘密
说起计算机,那么大家几乎都不陌生它,在日常生活中,它可是起着重要作用呢。那么,今天小编就来献献丑,带着大家深入些了解下吧。计算机中文名字:电子数字积分和计算器同时,最初的用途,更多是用于军事,比如计算弹道的轨迹的,直到第四代超大规模集成电路计算机研制成功,即二十世纪七十年代,才开始广泛应用于民用方面。那么,这个研发人员有谁呢?这些呢,是主要的研发人员。此时我们可以发现一个熟悉的名字,冯诺依曼。原创 2024-11-24 11:01:14 · 846 阅读 · 0 评论
分享