当前位置: 首页 > news >正文

【HBZ分享】java中的BitSet 与 Redis中的BitMap 与 布隆过滤器

BitMap的存储原理

  1. bitMap他会标识出某个整数是否存在,存在即为1,不存在对应位即为0
  2. bitMap是存储int类型的,int = 4byte, 1byte = 8bit,因此bitMap数组中的每个下标可以标识出32个数字是否存在
  3. bitMap相当于一个个小格子,底层是一个int类型数组,数组的每个下标可以存储32个数字,如果bitMap的长度设置为100,则可以标识出100 * 32 = 3200 个数字是否存在
  4. 假设现在有数字【0, 10, 24, 50】那么0会保存到下标为0的那个位,10会保存下标为10的位置,24会保存下标是24的位置,50会保存下标是50的位置,即假设bitMap中第 30个位置对应值 = 1, 则表示30这个数字是存在的
  5. bitMap不能存储【负数,float,double】等非正整数的数字。
  6. bitMap以32位的倍数出现,即我们要存50这个数字,则bitMap总共size就是64,因为50大于32,但小于64,所以需要两个空间存储,即size = 64
  7. bitSet是java中的类型,他的底层是Long存储的,所以它是以64位为一个整体,bitSet中每个数组位可以标识64个数字,同理也不能出现【负数,fload, double】类型
  8. 注意:bitMap可以标识字符串和对象,但是必须要先进行hash取模,然后再存,由于是hash取模,所以存储字符串 或 对象会出现hash碰撞,导致不准确的情况出现

BitMap 与 BitSet的使用场景

  1. 用户签到登录,签到的用户根据自增id,在对应位上打上1的标识
  2. 统计uv,即有多少人访问了网站,把访问网站的用户id打到对应标识位上置1, 最后统计bitMap中为1的个数即可
  3. 领取优惠券,每人只能领取1次,领取的人把id打到对应bitMap位置上置1,领取前根据该用户id查询bitMap是否为1,如果为1,则直接拒绝,因为已经领取了
  4. 去重,比如爬虫爬取url,下一个网页可能存在上一个网页的链接,防止重复爬取url造成死循环,可以使用布隆过滤器,把爬过的网页进行hash后存到布隆过滤器,每次爬到url的时候就去布隆过滤器看下是否存在, 如果存在,则忽略掉,直接爬下一个即可

java中BitSet的使用方式及常用API

package bitmap;import java.util.BitSet;/*** 要求: 有1千万个随机数,分布在1 到 1亿之间,需要找出1 到 1亿不存在的数据,即随机剩下的9千万数据** 使用java的bitSet集合** bitSet是Long类型,每一个组是64bit* bitMap是int类型,每一个组32bit** 注意:bitSet不能存负数,只能存0以上的并且在Long类型范围内的正整数*/
public class BitSetTest {public static void main(String[] args) {// 这个初始化128,会在里面生成一个128个桶的Long类型的数组,所以一共有128 * 64 个bit位,也就是一共能标记出128 * 64个整数是否存在// 不指定默认64BitSet bitSet = new BitSet(128);bitSet.set(0);bitSet.set(66);// 输出bitSet大小,应该是128,因为66大于64,所以需要第二个Long位,每个Long位是64,2个就是128System.out.println("bitSet大小: " + bitSet.size());// 这个是bit位的长度,是最大的那个数字+1,即67System.out.println("bitSet长度: " + bitSet.length());// 查询出有多少个为1的位,显然我们只存了0和66,只有俩,所以结果就是2System.out.println("bitSet中存在多少数字" + bitSet.cardinality());// 读取bit位 = 0的下标, 返回true,说明存数据了,即该位的值 = 1,因为bitSet.set(0),// 把0存到了第0位,这是必然的,0一定是存到下标位0的位置,这是规则,不需要认为指定System.out.println("0是否存在: " + bitSet.get(0));// 读取bit位 = 1的下标,返回false, 说明该位没有存数据,即没有存数字1,所以该位的值 = 0, 表示1这个数字不存在System.out.println("1是否存在: " + bitSet.get(1));System.out.println("66是否存在: " + bitSet.get(66));}
}

输出:
在这里插入图片描述

布隆过滤器

  1. 布隆过滤器可以支持多种类型,而bitSet 和 bitMap只能支持正整数
  2. 布隆过滤器本身不支持删除元素,因为可能出现好几个值由于hash碰撞都存到了同一个格子,如果删除可能会影响到其他元素。
  3. 当然可以把布隆过滤器改造成带有计数的效果,即如果某个格子计数是1,即只有一个元素占有这个位置,这个时候就可以删除
  4. 布隆过滤器保存某个值的时候可以通过多次hash,比如把"java"进行3次不同的hash算法取模,会得到3个不同的hash值,那么这3个值都会保存到布隆过滤器对应的位中,即"java"这个值会被存到3个位置,这3个位置都标记这"java"的hash
  5. 布隆过滤器说没有,那一定就不存在;但是布隆过滤器说存在,那未必真的存在,因为可能发生hash碰撞,导致你要查的元素hash的值和别的元素hash值相同了,这个时候布隆过滤器会误判成存在

布隆过滤器是如何降低误判

  1. 保存元素时,会对该元素去多个hash值,把这些hash值全部存到布隆过滤器中(比如要存"java", 进行3次hash后值分别是【2,10,26】, 那么"java"这个值就会被同时存储到【2, 10, 26】的位置)
  2. 当要查询一个元素是否存在时,会以同样的hash算法计算出3个值,然后用这3个值去布隆过滤器的对应3个位置去找,如果这3个位置有一个位置是0,则直接判该值不存在(假如之前只存了"java", 现在要查询"web"这个字符串是否存在, 那么会以同样的hash算法对"web"进行3次hash取模,假如取到的是【2, 15, 26】, 会发现15这个位置是0,此时直接回判定"web"不存在,尽管2, 26都有,但15没有,就说明"web"不存在)
  3. 当布隆过滤器中的bit格子被逐渐被占满时候,此时即使hash取3个值,依然会有大概率误判,因为可能hash出来的3个值都和其他元素发生hash碰撞了(比如要查询"cloud", 取模是【10, 15, 26】, 而布隆过滤器并没有"cloud", 而10, 15, 26却都是1,因为与"java", “web"发生hash碰撞了,所以会误判"cloud"也存在,而实际却并不存在"cloud”)

布隆过滤器(BloomFilter)和位图(bitMap)的区别

  1. BitMap的每个位只会存储1个元素的标识,而bloomFilter可以标识多个元素,因为1个元素会hash出多个值,并存到多个位
  2. BitMap只能存int类型,而bloomFilter可以存储多种类型,原理是通过hash取模的方式,所以String存在hash碰撞
  3. BitMap的每个元素会消耗1个bit来存储,而BloomFilter通常来说会小于1bit,因为每个位可能会存储多个元素,那么平摊下来,每个元素就小于1bit,当然如果元素很少,那1个元素会占用3个bit,那就更多了。

相关文章:

【HBZ分享】java中的BitSet 与 Redis中的BitMap 与 布隆过滤器

BitMap的存储原理 bitMap他会标识出某个整数是否存在,存在即为1,不存在对应位即为0bitMap是存储int类型的,int 4byte, 1byte 8bit,因此bitMap数组中的每个下标可以标识出32个数字是否存在bitMap相当于一个个小格子&…...

《Linux从练气到飞升》No.16 Linux 进程地址空间

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…...

【算法题】7004. 判别首字母缩略词

题目: 给你一个字符串数组 words 和一个字符串 s ,请你判断 s 是不是 words 的 首字母缩略词 。 如果可以按顺序串联 words 中每个字符串的第一个字符形成字符串 s ,则认为 s 是 words 的首字母缩略词。例如,“ab” 可以由 [“a…...

ClickHouse(二十一):Clickhouse SQL DDL操作-临时表及视图

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…...

redis乐观锁+启用事务解决超卖

乐观锁用于监视库存(watch),然后接下来就启用事务。 启用事务,将减库存、下单这两个步骤,放到一个事务当中即可解决秒杀问题、防止超卖。 但是!!!乐观锁,会带来" …...

智能画笔:如何利用AI绘画API打造独特的创作风格

在当今数字化时代,人工智能的迅猛发展正深刻地影响着各个领域,艺术创作也不例外。AI绘画 API 作为一种创新的工具,为艺术家提供了独特的机会,使他们能够在创作过程中借助人工智能技术,打造出独具个性的创作风格。本文将…...

ElasticSearchConfig

1. 添加配置 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId></dependency>2. es 配置信息 import org.apache.http.HttpHost; import org.apache.http.auth.Au…...

解决vant组件 van-dialog造成的页面闪动问题

解决方案&#xff1a;该问题是因为van-dialog默认是scale&#xff0c;将这个属性改为fade即可...

SpringBoot内嵌Tomcat连接池分析

文章目录 1 Tomcat连接池1.1 简介1.2 架构图1.2.1 JDK线程池架构图1.2.2 Tomcat线程架构 1.3 核心参数1.3.1 AcceptCount1.3.2 MaxConnections1.3.3 MinSpareThread/MaxThread1.3.4 MaxKeepAliveRequests1.3.5 ConnectionTimeout1.3.6 KeepAliveTimeout 1.4 核心内部线程1.4.1 …...

分布式协调服务中的几个常见算法

分布式协调服务中的几个常见算法包括: 1. 选主算法 用于从多个节点中选举出一个节点作为主节点或者领导者,常见的算法有Bully算法、Ring算法等。 2. 原子广播算法 用于向分布式系统中的所有节点广播消息,保证所有节点都可以收到消息,典型的两阶段提交协议实现了原子广播。…...

易服客工作室:Houzez主题 - 超级房地产WordPress主题/网站

Houzez主题是全球流行的房地产经纪人和公司的WordPress主题。 Houzez Theme是专业设计师创造一流设计的超级灵活起点。它具有您的客户&#xff08;房地产经纪人或公司&#xff09;甚至可能做梦也想不到的功能。 网址&#xff1a;Houzez主题 - 超级房地产WordPress主题/网站 - …...

mysql通过binlog日志恢复误删数据

1、先查看binlog功能是否开启 show variables like %log_bin%;log_bin为ON说明可以使用binlog恢复&#xff0c;如果为OFF说明没有开启binlog。 2、删除部分数据做测试 3、查找binlog文件位置 show variables like %datadir%;cd /var/lib/mysqlls -l删除数据时间是在文件154与…...

Istio入门体验系列——基于Istio的灰度发布实践

导言&#xff1a;灰度发布是指在项目迭代的过程中用平滑过渡的方式进行发布。灰度发布可以保证整体系统的稳定性&#xff0c;在初始发布的时候就可以发现、调整问题&#xff0c;以保证其影响度。作为Istio体验系列的第一站&#xff0c;本文基于Istio的流量治理机制&#xff0c;…...

CSS行内,内部,外部以及优先级

1.内联样式表&#xff1a; 将样式编写到style标签里 <style>.context {color: red;} </style> 2. 行内样式&#xff1a; 在 HTML 标签中使用 style 属性设置 CSS 样式 <div style"font-size: 18px;">行内样式</div> 3.外联样式&#xff1…...

LCA——最近公共祖先

LCA问题是指在一棵树中找到两个节点的最近公共祖先。最近公共祖先是指两个节点在树中的最近的共同祖先节点。例如&#xff0c;在下面这棵树中&#xff0c;节点 6 6 6和节点7的最近公共祖先是节点 3 3 3。 1/ \2 3/ \ / \4 5 6 7解决LCA问题的方法有很多种&#xff…...

游戏开发与硬件结合,开启全新游戏体验!

游戏与硬件的结合可以通过多种方式实现&#xff0c;从改善游戏体验到创造全新的游戏玩法。以下是一些常见的游戏与硬件结合的方式&#xff1a; 虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;技术&#xff1a;VR和AR技术使玩家能够沉浸式地体验游戏…...

测试框架pytest教程(4)运行测试

运行测试文件 $ pytest -q test_example.py 会运行该文件内test_开头的测试方法 该-q/--quiet标志使输出保持简短 测试类 pytest的测试用例可以不写在类中&#xff0c;但如果写在类中&#xff0c;类名需要是Test开头&#xff0c;非Test开头的类下的test_方法不会被搜集为用…...

Linux 上 离线部署GeoScene Server Py3 运行时环境

默认安装ArcGIS Pro的时候&#xff0c;会自动部署上Python3环境&#xff0c;所以在windows上不需要考虑这个问题&#xff0c;但是linux默认并不部署Py3&#xff0c;因此需要单独部署&#xff0c;具体部署可以参考Linux 上 ArcGIS Server 的 Python 3 运行时—ArcGIS Server | A…...

Python+request+unittest实现接口测试框架集成实例

这篇文章主要介绍了Pythonrequestunittest实现接口测试框架集成实例&#xff0c;小编觉得挺不错的&#xff0c;现在分享给大家&#xff0c;也给大家做个参考。一起跟随小编过来看看吧 1、为什么要写代码实现接口自动化 大家知道很多接口测试工具可以实现对接口的测试&#xf…...

django/flask+python+vue汽车租赁管理系统_1ma2x

开发语言&#xff1a;Python 框架&#xff1a;django/flask Python版本&#xff1a;python3.7.7 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;PyCharm . 课题主要分为三大模块&#xff1a;即管理员模块、用户模块和普通管理员模块&#xff0…...

胜者打仗,就像高山上决开积水,势不可挡

胜者打仗&#xff0c;就像高山上决开积水&#xff0c;势不可挡 【安志强趣讲《孙子兵法》16讲】 【原文】 是故胜兵先胜而后求战&#xff0c;败兵先战而后求胜。善用兵者&#xff0c;修道而保法&#xff0c;故能为胜败之政。 【注释】 修道&#xff1a;指从各方面修治“先立于不…...

stm32的命令规则

stm32型号的说明&#xff1a;以STM32F103RBT6这个型号的芯片为例&#xff0c;该型号的组成为7个部分&#xff0c;其命名规则如下&#xff1a;...

1. HBase中文学习手册之揭开Hbase的神秘面纱

揭开Hbase的神秘面纱 1.1 欢迎使用 Apache Hbase1.1.1 什么是 Hbase?1.1.2 Hbase的前世今生1.1.3 HBase的技术选型&#xff1f;1.1.3.1 不适合使用 HBase的场景1.1.3.2 适合使用 HBase的场景 1.1.4 HBase的特点1.1.4.1 HBase的优点1.1.4.2 HBase的缺点 1.1.5 HBase设计架构 1.…...

[线程/C++]线程同(异)步和原子变量

文章目录 1.线程的使用1.1 函数构造1.2 公共成员函数1.2.1 get_id()1.2.2 join()2.2.3 detach()2.2.5 joinable()2.2.6 operator 1.3 静态函数1.4 call_once 2. this_thread 命名空间2.1 get_id()2.2 sleep_for()2.3 sleep_until()2.4 yield() 3. 线程同步之互斥锁3.1 std:mute…...

全球网络加速器GA和内容分发网络CDN,哪个更适合您的组织使用?

对互联网用户来说&#xff0c;提供最佳的用户体验至关重要&#xff1a;网页加载时间过长、视频播放断断续续以及服务忽然中断等问题都足以在瞬间失去客户。因此可以帮助提高您的网站或APP提高加载性能的解决方案就至关重要&#xff1a;全球网络加速器和CDN就是其中的两种解决方…...

蓝凌OA custom.jsp 任意文件读取

​曾子曰&#xff1a;“慎终追远&#xff0c;民德归厚矣。” 漏洞复现 访问漏洞url&#xff1a; 出现漏洞的文件为 custom.jsp&#xff0c;构造payload&#xff1a; /sys/ui/extend/varkind/custom.jsp var{"body":{"file":"file:///etc/passwd&q…...

(二)结构型模式:7、享元模式(Flyweight Pattern)(C++实例)

目录 1、享元模式&#xff08;Flyweight Pattern&#xff09;含义 2、享元模式的UML图学习 3、享元模式的应用场景 4、享元模式的优缺点 5、C实现享元模式的简单实例 1、享元模式&#xff08;Flyweight Pattern&#xff09;含义 享元模式&#xff08;Flyweight&#xff09…...

laravel 多次查询请求,下次请求清除上次请求的where 条件

在Laravel中&#xff0c;可以使用where方法来添加查询条件&#xff0c;但是每次添加where条件时&#xff0c;都会在查询构造器中持久化这些条件&#xff0c;直到你手动重置它们。所以&#xff0c;如果你想在下一次查询中清除上次查询的where条件&#xff0c;有以下几种选择&…...

C++根据如下使用类MyDate的程序,写出类MyDate的定义,MyDate中有三个数据成员:年year,月month,日day完成以下要求

题目&#xff1a; 根据如下使用类MyDate的程序&#xff0c;写出类MyDate的定义&#xff0c;MyDate中有三个数据成员&#xff1a; 年year&#xff0c;月month&#xff0c;日day int year,month,day; void main() { MyDate d1, d2; d1.set(2015, 12, 31); d2.set(d1); d1.…...

微盟集团中报增长稳健 重点发力智慧零售AI赛道

零售数字化进程已从渠道构建走向了用户的深度运营。粗放式用户运营体系无法适应“基于用户增长所需配套的精细化运营能力”,所以需要有个体、群体、个性化、自动化运营——即在对的时候、以对的方式、把对的内容推给用户。 出品|产业家 2023年已经过半&#xff0c;经济复苏成为…...

设计模式(7)模板方法模式

一、定义&#xff1a; 定义一个操作中的算法骨架&#xff0c;而将算法的一些步骤延迟到子类中&#xff0c;使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。 //模板方法抽象类 public abstract class AbstractClass {//模板方法publ…...

2308C++协程流程9

参考 #include <协程> #include "简异中.cpp" //用来中文定义的.元<类 T>构 P;元<类 T>构 任务{用 承诺型P<T>;任务()默认;动 符号 协待()常 无异{构 等待器{极 直接协()常 无异{中 p.是准备好();}协柄 挂起协(协柄<>o)常 无异{p.连续…...

基于学习交流社区的自动化测试实现

一 项目介绍 项目名称 项目名称&#xff1a; 学习交流社区 项目介绍 项目介绍&#xff1a; 学习交流社区是一个基于Spring的前后端分离的在线论坛系统。使用了MySQL数据库来存储相关信息&#xff0c;项目完成后使用Xshell将其部署到云服务器上。 前端页面&#xff1a; 前端共由…...

2023-08-21力扣每日一题

链接&#xff1a; 2337. 移动片段得到字符串 题意&#xff1a; L可以和左边的_交换&#xff0c;R可以和右边的_交换&#xff0c;求判断A是否能通过交换&#xff08;不限次数&#xff09;变成B 解&#xff1a; 观察可知&#xff0c;如果存在RL,一定不能交换出LR&#xff0c…...

对象存储服务-MinIO基本集成

是什么 MinIO 是一个高性能的分布式对象存储服务&#xff0c;适合存储非结构化数据&#xff0c;如图片&#xff0c;音频&#xff0c;视频&#xff0c;日志等。对象文件最大可以达到5TB。 安装启动 mkdir -p /usr/local/minio cd /usr/local/minio# 下载安装包 wget https:/…...

Yarn介绍及快速安装 - Debian/Ubuntu Linux

1.Yarn介绍 Yarn 是一个用于管理 JavaScript 包的快速、可靠和安全的包管理器。它是由 Facebook、Google、Exponent 和 Tilde 团队共同开发的&#xff0c;旨在提供比 npm 更快速、可靠的包管理体验。 以下是 Yarn 的一些主要特点和优势&#xff1a; 快速安装&#xff1a;Yarn…...

【新日语(2)】第10課 中国の生活に慣れるかどうか少し心配です

第10課 中国の生活に慣れるかどうか少し心配です 注释&#xff1a; &#xff5e;かどうか&#xff1a;“是否”。 练习A 一、例句 田中さんは鈴木さんに、30分ぐらい遅れると言いました。 田中先生告诉铃木先生&#xff0c;他会迟到大约30分钟。 注释&#xff1a; &…...

Python 网页解析初级篇:BeautifulSoup库的入门使用

在Python的网络爬虫中&#xff0c;网页解析是一项重要的技术。而在众多的网页解析库中&#xff0c;BeautifulSoup库凭借其简单易用而广受欢迎。在本篇文章中&#xff0c;我们将学习BeautifulSoup库的基本用法。 一、BeautifulSoup的安装与基本使用 首先&#xff0c;我们需要使…...

Spring Schedular 定时任务

大家好 , 我是苏麟 , 今天带来定时任务的实现 . Spring网站 : 入门 |计划任务 (spring.io) 什么是定时任务 通过时间表达式来进行调度和执行的一类任务被称为定时任务 定时任务实现 1.Spring Schedule (Spring boot 默认整合了) 2.Quartz(独立于Spring 存在的定时任务框架…...

营业额统计

营业额统计 # 题目描述 Tiger 最近被公司升任为营业部经理&#xff0c;他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger 拿出了公司的账本&#xff0c;账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日&…...

使用lodash的throttle函数会触发两次

当使用lodash的throttle函数时会触发两次&#xff0c;分别在最开始和最后。 严格来说不算是bug&#xff0c;因为官方文档写的很清楚。throttle函数其实有三个参数&#xff1a; _.throttle(func, [wait0], [options]) func: 要节流的函数 wait: 等待时间 options: 选项 op…...

如何使用CSS实现一个瀑布流布局?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现瀑布流布局⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚…...

dfs之有重复字符串的排列组合

https://leetcode.cn/problems/permutation-ii-lcci/description/ ■ 题目描述 考古问题&#xff0c;假设以前的石碑被打碎成了很多块&#xff0c;每块上面都有一个或若干个字符&#xff0c;请你写个程序来把之前石碑上文字可能的组合全部写出来&#xff0c;按升序进行排列。…...

Java之抽象类

Java之抽象类 抽象类概念抽象类如何使用抽象类的特性 作者简介&#xff1a; zoro-1&#xff0c;目前大一&#xff0c;正在学习Java&#xff0c;数据结构等 作者主页&#xff1a;zoro-1的主页 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f49…...

“无Internet连接但是可以上网” 解决全流程

先说我的最后解决方法&#xff1a; 修改注册表下\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet下 的 EnableActiveProbing 项&#xff1a;将 1 改成 0 为什么要解决“无Internet连接但是可以上网”这个问题&#xff1f; 因为虽然可以上百…...

VS2022 CMake报错解决小结

目录 一、问题背景 二、问题分析 三、问题解决 一、问题背景 VS2022中能够跨平台的工程类型就是CMake项目&#xff0c;一套代码能跨windows/Linux/Mac多种操作系统。而实际使用时&#xff0c;发现相关资料比较少&#xff0c;需要摸索一下。 碰到的问题简述&#xff1a; 1、C…...

java之webservice_aegis.xml学习

开门见山,直奔主题,让我们先来看一个接口: public interface UserInfo {public Collection findRoleInfosByUserID(String userUniqueID);public User findUserInfosByUserID(String userUniqueID);public String test();} 观察此接口,首先我们看findRoleInfosByUserID方法…...

总结 TCP 协议的相关特性

TCP协议段格式: 如图, 端口号: 是其中一个重要的部分,知道端口号才能确认数据交给哪个应用程序(端口号属于传输层的概念). 4位首部长度:4bit表示的范围是0->15,在此处,单位是"4字节",因此,将这里的数值 * 4&#xff0c;才是真正的报头长度,即TCP 报头最大长度,60…...

不负众望~历时4年修炼,这本册子终于成书了(文末赠书)

名字&#xff1a;阿玥的小东东 学习&#xff1a;Python、C/C 主页链接&#xff1a;阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 精进Spring Boot首选读物 “小册”变“大书”&#xff0c;彻底弄懂Spring Boot 全方位配套资源…...

【校招VIP】java语言考点之垃圾回收算法

考点介绍&#xff1a; 垃圾回收算法是必考题。GC中的垃圾指的是存在于内存中的、不会再被使用的对象。而垃圾回收就是把那些不再被使用的对象进行清除&#xff0c;收回占用的内存空间...... 『java语言考点之垃圾回收算法』相关题目及解析内容可点击文章末尾链接查看&#xff…...