草庐IT

ArrayBlockingQueue详解

全部标签

网络原理-UDP/TCP详解

一.UDP协议UDP协议端格式由上图可以看出,一个UDP报文最大长度就是65535. •16位长度,表示整个数据报(UDP首部+UDP数据)的最大长度(注意,这里的16位UDP长度只是一个标识这个数据报长度的字段,并不是这个数据报传输的数据)•如果校验和出错,就会直接丢弃。 校验和:通过网线传输时,电信号使用高低电平来表示0和1.。但是,如果外部环境干扰,就有可能导致低电平->高电平,高电平->低电平,造成比特翻转=>数据就传输错了。校验和就是通过数据报中的数据内容通过计算得到的。值得注意的是:如果校验和不对,此时你的数据一定不对,如果校验和对,但是数据也有一定概率是错误的。面向数据报:应用层

Activity的5种启动模式详解(新增singleInstancePerTask类型)

前言看到这个标题的时候,也许你会认为我写错了,Activity不是只有四种启动模式吗?分别为startard,singleTop,singleTask,singleInstance这四种。一般来说是四种,但是android12的时候新加入了singleInstancePerTask类型,所以就有5种了。介绍这五种类型之前,我们先略微介绍一下这五种类型在源码中的定义。首先,我们先看一下官方注释的位置下,这五种类型的注释在attrs_manifest.xml文件中:TasksandBackStackdocumentformoredetailsabouttasks.-->TasksandBackSt

NodeMCU ESP8266 GPIO使用详解(图文并茂)

NodeMCUESP8266GPIO使用详解文章目录NodeMCUESP8266GPIO使用详解前言什么是GPIO?GPIO的使用GPIO模式作为输出输出高电平输出低电平作为输入上拉输入下拉输入读取输入值总结前言前面的文章中我们已经学习了如何点亮一个LED灯,在嵌入式的世界里,这个相当于我们初学一门编程语言,写下的HelloWorld程序。为了让LED闪烁,我们需要操作芯片的GPIO,这是硬件最底层的概念,只不过Arduino的编程中,底层的库函数已经为我们做好了硬件的封装,只要调用相应的API接口就对GPIO进行操作。如果是更纯粹的单片机开发,我们可能还需要读写各种寄存器,通常这些会出现在单

详解数据仓库之拉链表(原理、设计以及在Hive中的实现)

最近发现一本好书,读完感觉讲的非常好,首先安利给大家,国内第一本系统讲解数据血缘的书!点赞!近几天也会安排朋友圈点赞赠书活动(ง•̀_•́)ง0x00前言本文将会谈一谈在数据仓库中拉链表相关的内容,包括它的原理、设计、以及在我们大数据场景下的实现方式。全文由下面几个部分组成:先分享一下拉链表的用途、什么是拉链表。通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别。举一个具体的应用场景,来设计并实现一份拉链表,最后并通过一些例子说明如何使用我们设计的这张表(因为现在Hive的大规模使用,我们会以Hive场景下的设计为例)。分析一下拉链表的优缺点,并对前面的提到的一些内容

Android 基础知识4-3.11 Adapter(适配器)详解

一、简介        Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系: Adapter的继承结构图:BaseAdapter:抽象类,实际开发中我们会继承这个类并且重写相关方法,用得最多的一个Adapter!ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字~SimpleAdapter:同样具有良好扩展性的一个Adapter,可以自定义多种效果!SimpleCurs

MYSQL数字函数详解和实战

MySQL提供了许多数字函数,用于对数字进行各种计算和处理。以下是一些常用的MySQL数字函数。内容有点多,建议收藏以备后续用到查阅参考。目录一、SIGN取数字的符号二、ABS取绝对值三、COS取余弦值四、ACOS取反余弦值五、SIN取正弦值六、ASIN取反正弦值七、TAN取正切值八、ATAN取反正切值九、ATAN2取反正切值十、 COT取余切值十一、CEIL向上取整十二、CEILING向上取整十三、FLOOR向下取整十四、ROUND取四舍五入十五、TRUNCATE 截取小数位十六、CONV 进制转为另一个进制十七、DIV取除法值十八、EXPe的指定数值的次方十九、GREATEST取列表的最大

详解数据库SQL中的三个语句:DROP、TRUNCATE 、DELETE

本文分享自华为云社区《GaussDB数据库SQL系列-DROP&TRUNCATE&DELETE》,作者:Gauss松鼠会小助手2。一、前言在数据库中,SQL作为一种常用的数据库编程语言,扮演着至关重要的角色。SQL不仅可以用于创建、修改和查询数据库,还可以通过DROP、DELETE和TRUNCATE等语句来删除数据。这些语句是SQL语言中的最常用的命令,且它们有着不同的含义和使用场景。本文以GaussDB数据库为平台,将详细介绍SQL中DROP、TRUNCATE和DELETE等语句的含义、使用场景以及注意事项,帮助读者更好地理解和掌握这些常用的数据库操作命令。二、GaussDB的DROP&TR

Object.keys方法之详解

Object.keys方法之详解Object.keys()方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致。语法Object.keys(obj)参数要返回其枚举自身属性的对象。返回值一个表示给定对象的所有可枚举属性的字符串数组。描述Object.keys()返回一个所有元素为字符串的数组,其元素来自给定的object上面可直接枚举的属性。这些属性的顺序与手动遍历该对象属性时的一致。示例一、传入对象,返回属性名letobj={name:"张三",age:25,address:"深圳",getName:function(){}}co

数据结构 - 7(Map和Set 15000字详解)

一:二叉搜索树1.1二叉搜索树的概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树int[]array={5,3,4,1,7,8,2,6,0,9};1.2在二叉搜索树进行操作1.2.1查找查找操作可以按照以下步骤进行:从根节点开始遍历。如果当前节点为空,表示找不到目标值,返回null。如果当前节点的值等于目标值,表示找到了目标节点,返回该节点。如果目标值小于当前节点的值,说明目标值在当前节点的左子树中,继续在左子树中递归查找

python %s格式化输出的五种用法,实例详解

%s是什么%s是python中的一个用于格式化输出的符号,与python内置的print()函数搭配使用,通常情况下用于格式化输出字符串或字符,但实际上,%s也可以用于输出其他的python数据类型。除此之外,%和s之间还可以传递一些参数,比如数值或符号等等,具体的见下方的实例代码。%s的多种用法实例基本用法首先来看一下%s的基本用法,用于格式化输出字符串:>>>string='笨鸟工具,x1y1z1.com'>>>print('%s'%string)笨鸟工具,x1y1z1.com%ns的用法实例当在%和s之间传递一个数值参数n时,python会根据字符串的长度和n的绝对值大小关系来进行对应的