首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java基础面试系列(二)

这也就导致了原字符串更改以后仍然不变,因为其 地址发生了变化 为什么要将字符串设置 为不可变。...如果此时hash算法计算出来下标数组位有值,则比较当前新添加元素该值是否相同,如果相同,直接替换;如果不同,则检查当前节点是不是红黑树节点,如果是红黑树节点,则进行红黑树节点添加;如果不是则进行链表添加...,循环遍历链表中值,如果出现新添加元素相同key则直接替换,如果没有,则添加到尾部。...当数组实际承载容量>负载因子*数组容量扩容为原来2倍 9.HashMap size 为什么必须是 2 整数次方?...hash算法本质就是将每一个key尽可能均匀分配值,即此时计算得到哈希值已经是一个哈希值非常平均数字了,所以最好获取index方法就是在不影响原哈希值基础上进行对应容量下标计算,2整数次方均为进制位为

56200
您找到你想要的搜索结果了吗?
是的
没有找到

Shell笔记4:shell编程,字符串处理与正则表达式

" 取文档基本名称 格式:basename “字符串” c.子串替换 格式${var/old/new} 替换第一个结果 格式${var//old/new} 替换所有 d:字符串掐头 从左向右...,最短匹配删除 格式:${变量名#*关键词} 从左向右,最长匹配删除 格式:${变量名##*关键词} #用来删除头部,*通配 MDIR=“/var/spool/mail/root” echo...,最长匹配删除 格式:${变量名%%关键词*} %用来删除尾部,*通配 MDIR=“/var/spool/mail/root” echo ${MDIR%o*} == /var/spool/mail...} 变量var已存在且非null,则返回$var值 否则返回字符串word,变量var值不变 赋值:${var:=word} 若变量var已存在且非null,则返回$var值 否则返回字符串...echo "$SUM" 3.脚本扩展技巧 a.shell数组 关于变量类型,shell中变量值默认均视为文本 在数学运算中自动转为整数 var1=123 var2=$var1+20

63810

mysql密码字段类型_MySQL 字段类型

大家好,又见面了,我是你们朋友全栈君。 数值 MySQL 数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。...当用于比较运算,这个修饰符使 CHAR 以二进制方式参于运算,不是以传统区分大小写方式。 CHAR 类型一个变体是 VARCHAR 类型。... VARCHAR 类型把它视为最大值并且只使用存储字符串实际需要长度(增加一个额外字节来存储字符串本身长度)来存储值。...复合类型 MySQL 还支持两种复合数据类型 ENUM SET,它们扩展了 SQL 规范。虽然这些类型在技术上是字符串类型,但是可以视为不同数据类型。...在处理相互排数据容易让人理解,比如人类性别。ENUM 类型字段可以从集合中取得一个值或使用 null 值,除此之外输入将会使 MySQL 在这个字段中插入一个空字符串。

14.4K20

Mysql入门(二)

数值 MySQL 数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。...当用于比较运算,这个修饰符使 CHAR 以二进制方式参于运算,不是以传统区分大小写方式。 CHAR 类型一个变体是 VARCHAR 类型。... VARCHAR 类型把它视为最大值并且只使用存储字符串实际需要长度(增加一个额外字节来存储字符串本身长度)来存储值。...复合类型 MySQL 还支持两种复合数据类型 ENUM SET,它们扩展了 SQL 规范。虽然这些类型在技术上是字符串类型,但是可以视为不同数据类型。...在处理相互排数据容易让人理解,比如人类性别。ENUM 类型字段可以从集合中取得一个值或使用 null 值,除此之外输入将会使 MySQL 在这个字段中插入一个空字符串。

86920

【Java进阶】学好常用类,code省时省力(一)

单例模式(singleton)设计模式:谈到单例模式,我们应当想到设计模式,设计模式是一套反复使用代码设计经验总结,专门用于解决特定场景需求。...Auto-UnBoxing装箱箱,装箱即将基本数据类型包装为包装类对象,箱即将包装类对象转换为基本数据类型。...自动装箱自动箱,其实跟装箱箱差不多,只是不需要我们手动去转换,但底层依然是手动装箱箱。...boolean endsWith():判断字符串是否以指定后缀结束(比如判断文件为何种类型)String trim():清除字符头部尾部空白boolean isEmpty():判断字符串是否为空String...,内容发生修改,对象保持不变StringBuffer封装数组默认空间是16个字符,当容量不够,会自动扩容构造方法StringBuffer():创建默认容量字符串缓冲区StringBuffer(int

44030

ECMAScript 6 笔记(二)

a”视为三个字符,codePointAt方法在第一个字符上,正确地识别了“?”,返回了它十进制码点134071(即十六进制20BB7)。在第二个字符(即“?”...如果某个字符串不够指定长度,会在头部尾部补全。padStart用于头部补全,padEnd用于尾部补全。...模板字符串之中还能调用函数。   如果大括号中不是字符串,将按照一般规则转为字符串。比如,大括号中是一个对象,将默认调用对象toString方法。   模板字符串甚至还能嵌套。...需要注意是,在JavaScript内部,整数浮点数是同样储存方法,所以33.0视为同一个值。   5. ...安全整数Number.isSafeInteger()    用来判断一个整数是否落在-2^53到2^53之间   7.

77510

ES6新特性

const其实保证不是变量不变,而是保证变量指向内存地址所保存数据不允许改动。...复杂类型object,array,function,变量指向内存地址其实是保存了一个指向实际数据指针,所以const只能保证指针是固定,至于指针指向数据结构变不变就无法控制了 解构赋值 ES6...endsWith() 返回布尔值,判断参数字符串是否在原字符尾部。 repeat() 返回新字符串,表示将字符串重复指定次数返回。...padStart() 返回新字符串,表示用参数字符串从头部补全原字符串。 padEnd() 返回新字符串,表示用参数字符串从尾部(右侧)补全原字符串。...then方法接收两个函数作为参数,第一个参数是Promise执行成功回调,第二个参数是 Promise执行失败回调,两个函数只会有一个调用。

74710

Redis数据结构与底层实现揭秘

在Redis中,字符串是二进制安全,这意味着它们可以有任何长度,并且不会因为包含空字符截断。 列表(Lists):简单字符串列表,按照插入顺序排序。...你可以添加一个元素到头部(左边)或者尾部(右边)。 哈希表(Hashes):是键值对集合,是字符串类型字段映射表。适合存储对象。 集合(Sets):是字符串类型无序集合。...当需要遍历列表,可以从头部尾部开始,沿着节点指针依次访问。 压缩列表 当列表元素数量较少且元素较小时,Redis会使用压缩列表(ziplist)作为底层实现来节省内存。...由于它要求集合中元素必须是整数,并且元素数量较少,因此在处理非整数元素或大量元素整数集合可能不是最优选择。...字典(hashtable) 当集合中元素不满足整数集合条件(即元素不是整数或元素数量较多),Redis会使用字典作为底层实现。

1.5K11

【Java 基础篇】Java 自动装箱与箱:优雅处理基本数据类型与包装类转换

,它自动提取为一个基本数据类型 int。...Integer 类提供了许多方法来处理整数,例如将字符串解析为整数、将整数转换为字符串等。 常用方法示例 parseInt(String s):将字符串转换为整数。...减少错误: 自动装箱箱减少了因类型转换错误引发 bug,因为编译器可以在编译进行类型检查。...,但它们可能不会被视为相等,因为它们是不同对象。...通过自动装箱箱,Java 程序员可以更加专注于解决业务逻辑,不必过多关注数据类型转换细节。然而,在使用自动装箱,仍需谨慎考虑性能空指针异常等方面的问题。

45920

小团神秘暗号

题目 小团深谙保密工作重要性,因此在某些明文传输中会使用一种加密策略,小团如果需要传输一个字符串 S ,则他会为这个字符串添加一个头部字符一个尾部字符串。...头部字符串满足至少包含一个 “MT” 子序列,且以 T 结尾。 尾部字符串需要满足至少包含一个 “MT” 子序列,且以 M 开头。...例如 AAAMT MAAAT 都是一个合法头部字符串, MTAAA 就不是合法头部字符串。...很显然这样头尾字符串并不一定是唯一,因此我们还有一个约束,就是 S 是满足头尾字符串合法情况下最长字符串。...很显然这样加密策略是支持解码,给出一个加密后字符串,请你找出中间加密字符串 S 。 格式: 输入: - 输入第一行是一个正整数 n ,表示加密后字符串总长度。

22030

【C语言】数据类型(基本类型、构造类型、类型转换)

整型数据可以修饰符signedunsigned修饰,其中,signed修饰整型称为有符号整型,unsigned修饰整型称为无符号整型。...1B=8bit; int类型在打印使用%d 浮点型 浮点数分为单精度浮点数(float)双精度浮点数(double)两种,其中double型变量所表示浮点数比float型变量更精确。...基本格式为:(类型名)(表达式) 浮点数与整型转换:将浮点数转换成整数,将舍弃浮点数小数部分,只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式,即小数点后带若干个0。...单、双精度浮点型转换:float类型数据参与运算需要在尾部加0扩充为double数据类型。double型数据转换为float型,会造成数据精度丢失,有效位以外数据将会进行四舍五入。...将int型数据赋给long型变量,其外部值保持不变内部形式有所改变。 无符号整数之间转换:将一个unsigned型数据赋给一个长度相同整型变量,内部存储方式不变,但外部值可能改变。

1.6K30

ES6--字符串、正则、数值、数组扩展

0x21018 String.fromCodePoint(26446); // 李 **注意:**fromCodePoint方法定义在String对象上,codePointAt方法定义在字符实例对象上...startsWith():返回布尔值,表示参数字符串是否在源字符头部。 endsWith():返回布尔值,表示参数字符串是否在源字符尾部。...如果某个字符串不够指定长度,会在头部尾部补全。padStart用于头部补全,padEnd用于尾部补全。...不同之处在于,g修饰符只要剩余位置中存在匹配就可,y修饰符确保匹配必须从剩余第一个位置开始,这也就是“粘连”涵义。...并对Math对象做了相关扩展。 二进制八进制表示法 ES6提供了二进制八进制数值写法,分别用前缀0b0o(不再允许使用前缀0表示)表示。

46131

ES6--字符串、正则、数值、数组扩展

0x21018 String.fromCodePoint(26446); // 李 **注意:**fromCodePoint方法定义在String对象上,codePointAt方法定义在字符实例对象上...startsWith():返回布尔值,表示参数字符串是否在源字符头部。 endsWith():返回布尔值,表示参数字符串是否在源字符尾部。...如果某个字符串不够指定长度,会在头部尾部补全。padStart用于头部补全,padEnd用于尾部补全。...不同之处在于,g修饰符只要剩余位置中存在匹配就可,y修饰符确保匹配必须从剩余第一个位置开始,这也就是“粘连”涵义。...并对Math对象做了相关扩展。 二进制八进制表示法 ES6提供了二进制八进制数值写法,分别用前缀0b0o(不再允许使用前缀0表示)表示。

34510

微信ANDROID客户端-会话速度提升70%背后

通过Android系统自带traceview跟踪如图: 2000个联系人会话: ? 表后启动首次prepare SQL 占整个启动过程cpu开销40%以上!...单条索引构成 在经过对官网对索引格式介绍了解及单条索引debug跟踪后,总结出不表前索引条目内部元数据(不包含头部格式)构成如下图: ?...可见,表后,真正产生优化原因为头部talker字段占用去除,另外,因为message拆分成多个talker表,故对于部分talker表,由于聊天记录总数变小,该talker表内条数只要小于1.6w...,rowid就只占用2个字节以内, 这种情况下rowid会节省1个字节,但不是主要优化因素,关键还是头部大小节省。...从上面对其优势分析清楚之后,我们考虑到,既然这里talker字段是大头,sqlite 对整数是可变长整数,也就说,我们通过以talker作为索引第一个字段,占据了整个索引条目空间60-70%,而我们

3.6K70

Python第一周 学习笔记(3)

Python内置数据结构 ---- 一、数值型 ---- 1.数据类型分类: int:整数 python3int就是长整型,且没有大小限制,受限于内存区域大小 int(x) 返回一个整数 float...:浮点数 有整数部分小数部分组成。...子类,仅有2个实例True、False对应10,可以整数直接运算 bool(x) 返回布尔值,bool值判断逻辑一如前文所述,如: bool('') --> False bool(0) --> False...oct() 返回值为字符串 hex() 返回值为字符串 math.pi math.e (3)类型判断 type(obj) 返回类型不是字符串 isinstance(obj, class_or_tuple...O(1) 计数器在每次向list中插入、删除执行计数 因此调用len()只打出计数器数值,不执行遍历操作 列表增加、插入元素 append(object) -> None 在尾部追加,返回None

72710

.NET面试题系列 - C# 基础知识(2)

注意,不需要初始化int类型对象,因为其在执行程序之前,编译之后,就已经CLR初始化了。 过程 箱并不是把装箱过程倒过来,代价比装箱低得多。箱不需要额外分配内存。...注意字符串在修改时,是在堆上创建一个新对象,然后将栈上字符串指向新对象(旧对象变为垃圾等待GC回收)。字符值是无法修改(具有不变性)。...字符==操作和.Equal是相同,因为==已经重写为比较字符不是其引用。作为引用类型,==本来是比较引用,但此时重写,这也是字符串看起来像值类型一个原因。...字符行为很像值类型: 字符串使用等于号互相比较,比较字符不是是否指向同一个引用,这引用类型比较不同,值类型比较相同。...字符不变性指的是字符串一经赋值,其值就不能更改。当使用代码将字符串变量等于一个新,堆上会出现一个新字符串,然后栈上变量指向该新字符串。没有任何办法更改原来字符值。

89110

TCP粘包、包与通信协议详解

之后在发送数据,发送方必须要先确认接收方窗口没有填充满,如果没有填满,则可以发送。...当然,TCP确认延迟40ms并不是一直不变,TCP连接延迟确认时间一般初始化为最小值40ms,随后根据连接重传超时时间(RTO)、上次收到数据包与本次接收数据包时间间隔等参数进行不断调整。...+-----+-----+ | ABC | DEF | +-----+-----+ 在特殊字符分隔符协议中: 发送方,需要在发送一个报文,需要在报文尾部添加特殊分割符号...3.3 变长协议 将消息区分为消息头消息体,在消息头中,我们使用一个整形数字,例如一个int,来表示消息体长度。消息体实际实际要发送二进制数据字节。...3.4 序列化 序列化本质上已经不是为了解决粘包包问题,而是为了在网络开发中可以更加便捷。

10.5K61

分享一些常用 JS 基础面试题

默认排序顺序是在将元素转换为字符串,然后比较它们UTF-16代码单元值序列构建。 由于它取决于具体实现,因此无法保证排序时间空间复杂性。...复制代码 5.split() 使用指定分隔符将一个字符串拆分为多个子字符串数组并返回,原字符不变。...如果找到匹配,则 match方法会把匹配到以数组形式返回,如果正则规则未设置全局修饰符g,则 match方法返回数组有两个特性:inputindex。input属性包含整个搜索字符串。...当我们需要判定数组中元素是否满足某些条件,可以使用every / some。这两个区别是,every会去判断判断数组中每一项, some则是当某一项满足条件返回。...该数组成员都是该对象自身不是继承)所有属性名,且只返回可枚举属性。

69620
领券