- 博客(19)
- 收藏
- 关注
原创 (网络)应用层协议-HTTPS
HTTPS是应用层的一种协议,是在HTTP的基础上进行了加密层的处理。HTTP协议的内容都是按照文本的形式进行传输的,所以呢就很容易被别人知道传输的是什么。我们在了解了TCP/IP之后是知道我们的数据在传输的过程中是通过路由器进行传输的,所以呢中间的路由器就会知道我们传输的信息是什么。这个路由器就是运营商进行控制的。我们现在的网站都是有很多的广告的,只要我们搜索了信息之后就会,首先给我们弹出广告,之后才会出现我们想要的内容。
2025-05-12 21:53:46
992
原创 网络原理(TCP协议性质)
之前我们在讲解TCP协议前面几个性质的时候,我们通过那些确实已经可以确保信息正确的传输了,但是我们前面所讲的就是客户端发送一个信息,我们的服务器接受一个元素之后再给客户端发送 ACK,这样就实现了信息的可靠传输,但是我们可以清晰的感觉到一个缺点就是我们的性能很差,尤其是时间往返较长的时候。下面我们介绍的滑动窗口就是提升效率的,用于解决这个问题。上面是我们正常的信息发送的过程,我们既然说了这个传输的效率就是很慢,那么我们不妨尝试一下发送多条数据,这样的话明显的效率提高了很高。 下面给大家先介绍一个名词——窗
2025-05-12 19:12:03
888
原创 网络原理(TCP协议—协议格式,性质(上),状态)
当我们在主程序执行完了之后再finally里面,close()前面有大片的代码需要进行执行的时候,就会记性长时间的等待,所以中间两次的ACK(确认信息)首先进行返回,最后后面的Fin在记性返回,这就将中间的两次进行了分离。前面我们说了我们为什么不能进行合并的原因,那么我们。
2025-04-21 21:45:04
989
原创 JAVAEE(多线程)
我们在学习的时候都知道是在每一个数组后面都链着一个链表,当我们在多线程的情况下要不进行修改的时候,就会很明显的发生线程不安全的情况;我们可以将其想象成一个倒计电闸门,每当有一个线程完成任务就将计数器减1,当计数器的数值为0的时候,门闸就会打开,其他的线程就会继续执行。进行了化整为零的操作,就是当发现需要进行扩容的时候,只需要创建一个新的数组,同时只搬运几个元素过去,再扩容的过程中,新旧数组是同时存在的,在后续进行ConcurrentHashMap操作的时候,在进行搬运,每次只搬运一点点。
2025-04-12 14:47:26
673
原创 JAVAEE多线程(synchronized和reentrantlock)
reentrantlock锁也和 synchronized锁是一样的,也满足互斥性和可重入性。
2025-04-09 22:21:01
994
原创 JAVAEE(多线程-线程池)
我们观察 ThreadPoolExecutor 的参数。观察到一共有七个参数,七个参数的含义分别是:1.corePoolSize 是核心线程数。创建线程的时候就申请的,用完之后,一直存在,除非清除线程池,这样就不存在了。2.maximumPoolSize 是总线程数。等于核心线程数加上临时线程数的总和。里面的临时线程就是没有工作的时候就会将其销毁,不在存在到线程池里面。3.keepAliveTime 临时线程的存活时间。4.unit 时间单位。5.workQueue 阻塞队列。
2025-04-06 16:41:42
1027
原创 JAVAEE(多线程定时器的实现)
里面主要执行的任务是我们先判断对是否为空,之后取到堆顶的元素,之后再取到当时的时间,然后对这个时间和加入的时间进行比价,判断是否超过这个时间,对两种情况进行单独的处理,要是时间到了的话我们就进行执行当时堆顶元素的具体任务,之后将这个元素从堆中进行删除。这里展示的是定时器里面的主要方法,因为我们添加元素的时候,是添加的变量是两个,所以呢我们传入的变量值就是一个类,唤醒就是要在这里执行的,这里当然也是需要进行加锁操作的,这样才可以保证线程的安全性。观察结果我们发现,结果就是按照我们的时间顺序进行排序的。
2025-04-05 19:29:43
631
原创 线程安全(3.关键字的介绍和单例模式)
小编在上篇文章讲述了线程安全和解决办法,在里面也提到了JMM编译器优化机制。简单来说,就是在我们工作的时候,书写的代码水平是不一样的,所以呢,开发JAVA的人员就防止这个事情,提高代码的质量就提出了——JMM,那么我们解决这个问题就是要使用到下面讲述的一个关键字——volatile。
2025-04-04 20:55:17
1068
原创 多线程(2.线程安全)
定义: 线程安全指的是一个程序或者算法在多线程环境下运行时,不会出现数据竞争和不确定性的情况,保证每个线程都能够安全地访问共享的数据结构或资源而不会导致意外的错误。实现线程安全的算法通常会使用互斥锁、信号量、条件变量等同步机制来确保多个线程之间的并发访问不会干扰到彼此。线程安全就是我们在不是多线程的情况下,代码的运行结果和在多线程的情况下运行的结果要是一样的;要是出现结果不一样的情况就是线程不安全的情况。2.发生线程安全的原因。发生线程不安全的原因1.线程调度是随机的。2.修改操作是否是原子性的。
2025-04-01 20:05:40
767
原创 多线程(1.Thread类的操作和线程的状态)
这里呢,我就在简单的说一下线程。线程就是一个“”执行流“,”是进程的一部分,线程的作用就是为了可以使多个方式同时进行工作,每个部分都执行着自己的代码,多个线程之间执行者多个代码。同一个进程里面的一个线程要是停止运行了就可能会影响到其他的代码的运行。当然了最主要的作用还是为了提高工作的效率,从而为公司带来更多的效率。下面小编用正式的话术给大家描述一下:对于上述的提高工作效率来说,我们可以简单的想一下,多个人工作总比一个人工作快吧。(这里面要是理解不好的话可以看我的上篇文章,那里举得例子更加的形象。)至于后面这
2025-03-30 18:45:55
821
原创 进程和线程的区别
相比于进程,线程的优势还是挺明显的,由于我们之前不是说进程包含多个线程,这就自然的说明进程比线程更难创建,自然销毁也是类似的。线程的优点:创建线程⽐创建进程更快.销毁线程⽐销毁进程更快.调度线程⽐调度进程更快.我们通过上述举的例子,要让滑稽老铁和他的兄弟吃完鸡腿,明显后者更简单,他们不用去重新开上一个房间。这在内存中也是如此,在创建线程的时候明显比进程更快,成本更小。
2025-03-29 20:12:41
739
原创 数据结构七大排序——Java语言实现
这篇文章小编主要给大家讲述,七大排序的代码实现,并且会讲述其中部分排序的思想,以便大家更好理解,而且还会将各个排序的时间复杂度进行分析。下面展示排序题目的链接,更方便大家进行练习 :912. 排序数组 - 力扣(LeetCode)912. 排序数组 - 给你一个整数数组 nums,请你将该数组升序排列。你必须在 不使用任何内置函数 的情况下解决问题,时间复杂度为 O(nlog(n)),并且空间复杂度尽可能小。
2025-02-26 22:55:48
733
原创 优先级队列(堆)的 Java代码实现
当我们按照上述代码进行运行的话,会发现存在一个问题。这里呢,我就直接说了,各位看的时候,可以先思考一下。因为我们在 if 判断里面存在越界。要是我们的child是最后一个节点的话,那么 child+1 的位置就会越界。我们可以看下面,左边是我手动调整的;右边图是通过调试出现的结果。我们可以清晰的看到左边层序遍历的结果就是右边调试的结果。
2025-02-24 22:14:26
851
原创 数据结构--链表 (代码讲解)
/自定义异常上述就是链表的学习中涉及到的绝大多数知识点了,有任何错误的地方还请及时指出,后续会继续讲解,双向链表,队列链表的实现,栈的链表的实现......
2025-01-13 18:22:44
1547
原创 Java-SE -异常章节
在java中虽然已经内置了丰富的异常类,但是不能完全表示在实际开发过程中遇到的一些异常,此时就需要维护符合我们实际情况的异常结构了。if (!if (!System.out.println("登陆成功");当我们在处理上述代码中的用户名和密码错误的时候就需要输出两种异常。方法:在基于已有的异常类进行扩展(继承),创建符合我们业务相关的异常类。1.自定义异常类,然后继承自 Exception 或者 RunTimeException.2.实现一个带有String类型参数的构造方法。
2024-11-24 20:06:39
1563
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人