![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java编程
文章平均质量分 92
Java编程
【高级技工】
小白
展开
-
消息中间件:RabbitMQ
1.消息队列(MQ)1.1 MQ的相关概念1.1.1 什么是MQMQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他服务。1.1.2 为什么要用MQ1.流量消峰举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下原创 2021-06-27 21:29:55 · 357 阅读 · 3 评论 -
计算机网络:HTTP(应用层)
目录1 HTTP 基本概述2 HTTP 的操作过程3 HTTP 的特点4 HTTP 的报文结构5 HTTPS1 HTTP 基本概述HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,HTTP定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向事务的(Transaction-oriented)应用层协议,它规定了在浏览器和服务器之间的请求和响应的格式与规则,是..原创 2021-05-21 09:14:36 · 741 阅读 · 0 评论 -
计算机网络:UDP与TCP(传输层)
目录1 UDP协议1.1 UDP数据报1.1.1UDP概述1.1.2 UDP的首部格式1.2UDP校验2TCP协议2.1TCP协议的特点2.2TCP 报文段2.3TCP 连接管理2.3.1 TCP连接的建立2.3.2TCP连接的释放2.4TCP 可靠传输2.4.1 序号2.4.2 确认2.4.3 重传2.5TCP流量控制2.6TCP拥塞控制2.6.1 慢开始和拥塞避免2.6.2 快重传和快恢复3 总...原创 2021-05-20 12:09:16 · 811 阅读 · 1 评论 -
计算机网络:滑动窗口机制(数据链路层)
在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口;发送窗口用来对发送方进行流量控制,而发送窗口的大小W代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。发送窗口的工作原理如下图所示,发送窗口控制发送端的原创 2021-05-20 12:07:12 · 2980 阅读 · 0 评论 -
操作系统:进程调度算法
目录1 先来先服务(FCFS)调度算法2 短作业优先(SJF)调度算法3 优先级调度算法4 高响应比优先调度算法5 时间片轮转调度算法6 多级反馈队列调度算法(融合了前几种算法优点)7 总结1 先来先服务(FCFS)调度算法2 短作业优先(SJF)调度算法3 优先级调度算法4 高响应比优先调度算法5 时间片轮转调度算法6 多级反馈队列调度算法(融合了前几种算法优点)7 总结...原创 2021-05-19 22:04:04 · 2045 阅读 · 0 评论 -
操作系统:磁盘调度算法
1 先来先服务(FCFS)算法2 最短寻找时间优先(SSTF)算法3 扫描(SCAN)算法(又称电梯调度算法)4 循环扫描(C-SCAN)算法5 总结原创 2021-05-19 21:14:42 · 3705 阅读 · 0 评论 -
操作系统:同步与死锁
目录1 进程同步1.1 进程同步基本概念1.1.1 临界资源1.1.2 同步1.1.3 互斥1.2 实现临界区互斥的基本方法1.2.1 软件实现方法1.2.2 硬件实现方法1.3 信号量1.3.1 整型信号量1.3.2 记录型信号量1.3.3 利用信号量实现同步1.3.4 利用信号量实现进程互斥1.3.5 利用信号量实现前驱关系1.3.6 分析进程同步和互斥问题的方法步骤1.4 管程1.4.1 什么是管程1.4.2 条件变量1.原创 2021-05-19 16:10:07 · 821 阅读 · 0 评论 -
Redis有序集合Zset的底层数据结构:跳跃表(跳表,skip list)
1 为什么引入跳跃表我们知道红黑树是一种存在于内存中,可以保证在最坏的情况下,对红黑树进行例如search,insert,以及delete等基本的动态集合操作的时间复杂度为O(lg n)。但是显而易见,红黑树实现起来比较复杂,尤其是对红黑树进行insert和delete操作。并且在红黑树中进行范围查询时需要对红黑树进行中序遍历,这也是比较复杂的操作。那有没有一种能确保对动态集合search,insert以及delete等操作的时间复杂度在O(lg n)的前提下,实现比较简单,还能比较方便的进行范原创 2021-05-18 00:32:27 · 873 阅读 · 0 评论 -
NoSQL:Redis
333333原创 2021-05-17 14:50:29 · 326 阅读 · 0 评论 -
操作系统:内存管理
1 内存管理1.1 内存管理的原理1.1.1 内存管理的概念操作系统对内存的划分和动态分配。1.1.2 内存管理的意义方便用户使用存储器 提高内存利用率 可以通过虚拟技术从逻辑上扩充存储器1.1.3 内存管理的功能内存空间的分配与回收:由操作系统完成主存储器空间的分配和管理,使程序员摆脱存储分配的麻烦,提高编程效率。 地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可-一致,因此存储管理必须提供地址变换功能,把逻辑地址转换成相应的物理地址。 内存空间的扩充:原创 2021-05-17 03:02:12 · 2873 阅读 · 3 评论 -
数据结构:散列表(Hash table,也叫哈希表)
目录1. 基本概念2. 散列函数的构造方法2.1 考虑因素2.2 构造方法2.2.1 直接定址法2.2.2 数字分析法2.2.3平方取中法2.2.4 除留余数法2.2.5 折叠法2.2.6 随机数法3. 处理冲突的方法3.1 开放定址法3.1.1 线性探测法3.1.2 平方探测法3.1.3 再散列法3.1.4 伪随机序列法3.2 链地址法(拉链法,chaining)3.3 再哈希法3.4建立一个公共溢出区4. 查找性能...原创 2021-05-17 00:00:58 · 2498 阅读 · 0 评论 -
MySQL的索引结构为什么使用B+树,而不是其他树形结构?
目录1. 二叉查找树(BST):不平衡2. 平衡二叉树(AVL):旋转耗时3. 红黑树:树太高4. B树:为磁盘而生5. B+树6. 感受B+树的威力7. 总结出处: bilibili在MySQL中,无论是Innodb还是MyIsam,都使用了B+树作索引结构(这里不考虑hash等其他索引)。本文将从最普通的二叉查找树开始,逐步说明各种树解决的问题以及面临的新问题,从而说明MySQL为什么选择B+树作为索引结构。1. 二叉查找树(BST):不平衡二叉查找.原创 2021-05-16 22:01:09 · 395 阅读 · 0 评论 -
MySQL高级
目录1 MySQL架构介绍1.1 MySQL简介1.1.1 MySQL概述1.1.2 高级MySQL1.2 MySQL Linux版的安装1.2.1 环境介绍1.2.2 MySQL的安装及服务1.2.3修改字符集1.2.4设置大小写不敏感1.2.5sql_mode1.3 MySQL配置文件1.3.1 日志文件1.3.2 数据文件1.3.3 如何配置1.4 MySQL逻辑架构介绍1.4.1 整体架构图1.4.2 show profile...原创 2021-05-15 17:03:52 · 362 阅读 · 0 评论 -
数据库基础
目录1 基本操作1.1 起别名1.2去重1.3+号的作用1.4条件查询1.5 排序查询1 基本操作1.1 起别名便于理解 如果要查询的字段(列)有重名的情况,使用别名可以区分开来方式一:使用ASSELECT 100%88 AS 结果;SELECT last_name AS 姓, first_name AS 名 FROM employees;方式二:使用空格SELECT last_name 姓, first_name 名 FROM employe...原创 2021-05-11 13:19:39 · 227 阅读 · 0 评论 -
多线程的创建
多线程的创建Java语言的JVM允许程序运行多个线程,它通过Java.lang.Thread类来实现。其创建方法如下:方式一:继承于Thread类1.创建一个继承于Thread类的子类class MyThread extends Thread{}2.重写Thread类的run(),将此线程执行的操作声明在run()方法中class MyThread extends Thread{ public void run(){ //执行的操作程序 }}原创 2020-10-23 09:30:06 · 95 阅读 · 0 评论