我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。...当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢? exa 是一个常规 ls 命令的现代替代品,它让生活变得更轻松。这个工具是用 Rust 编写的,该语言以并行性和安全性而闻名。...它使用颜色来区分文件类型和元数据。它能识别符号链接、扩展属性和 Git。而且它体积小、速度快,只有一个二进制文件。 跟踪文件 你可以使用 exa 来跟踪某个 Git 仓库中新增的文件。...扩展文件属性 当你使用 exa 探索 xattrs(扩展的文件属性)时,--extended 会显示所有的 xattrs。...它的颜色编码让我更容易在多个子目录中进行搜索,它还能帮助我了解当前的 xattrs。
吗?...通过阅读本篇文章你将了解到: 为什么需要LocalDate、LocalTime、LocalDateTime【java8新提供的类】; java8新的时间API的使用方式,包括创建、格式化、解析、计算、...# 为什么需要LocalDate、LocalTime、LocalDateTime 1.Date如果不格式化,打印出的日期可读性差 Tue Sep 10 09:34:04 CST 2019 2.使用SimpleDateFormat...在多并发情况下使用SimpleDateFormat需格外注意 SimpleDateFormat除了format是线程不安全以外,parse方法也是线程不安全的。...=> 较好的方法 1.Date对时间处理比较麻烦,比如想获取某年、某月、某星期,以及n天以后的时间,如果用Date来处理的话真是太难了,你可能会说Date类不是有getYear、getMonth这些方法吗
下面的小技巧可以获取私有变量: 4、下划线种类 单个下划线(_) 单下划线前缀的名称(例如_shahriar) 双下划线前缀的名称(例如__shahriar) 前后都带有双下划线的名称(例如__init__) 5、这些命名有什么不同吗...双下划线前缀的名称(例如__shahriar) 以双下划线做前缀的名称(特别是方法名)并不是一种惯例;它对解释器有特定含义。Python会改写这些名称,以免与子类中定义的名称产生冲突。...还是不要这样写方法名,只让Python定义的特殊方法名使用这种惯例吧。 5、这些命名有什么不同吗?...,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入。...双 下划线开头的命名形式在 Python 的类成员中使用表示名字改编 (Name Mangling),即如果有一 Test 类里有一成员 __x,那么 dir(Test) 时会看到 _Test__x 而非
查找以.结尾的行 [root@localhost tmp]# grep -n '\.$' regular_express.txt 使用$定位在行尾,想要以.结尾的,但是.有特殊意义,所以需要使用\来转义吗...在linux中每行是以$来结尾的,那么如何匹配空白行呢?...[root@localhost tmp]# grep -n 'oo*' regular_express.txt 匹配字符开头和结尾都是g,中间必须是o且可以有多个,即gog,goog,gooog等 [root...{} 由于{}在shell中是有特殊含义的,所以使用时需要先转义 限定字符中只包含两个o [root@localhost tmp]# grep -n 'o\{2\}' regular_express.txt...如果使用扩展正则表达式可以使用 [root@localhost tmp]# egrep -v '^$|^#' regular_express.txt 使用扩展表达式时,使用egrep而不是grep。
删除: arr.splice(starti,n); 删除arr中starti开始的n个元素 强调: 不考虑含头不含尾,因为第二个参数不是下标 简写: 1....支持负数参数: 表示倒数第n个位置 其实splice有返回值: 返回被删除元素组成的临时新数组 var deletes=arr.splice(starti,n); 强调: 即使仅删除一个元素,也会放在数组中返回...结尾封闭,开头出入栈: 入栈: arr.unshift(值) 强调: 开头入栈的顺序和结尾入栈的结果相反!...何时: 只要希望获得与结尾入栈相反的元素顺序时 出栈: var first=arr.shift(); 队列(queue): 什么是: 只能从结尾进入,从开头出的数组 特点: FIFO 何时: 只要希望按先来后到的顺序使用数组元素时...如何: 结尾入队列: arr.push(值) 开头出队列: var first=arr.shift();
据说是程序猿的浪漫键盘按键作用↑上一条指令↓下一条指令←光标 向左移动 一格→光标 向右移动 一格ctrl + a光标 移动到开头ctrl + e光标 移动到结尾了解到 字符串 就是 给一串字符 两边加引号...有什么关系呢?...源源 c语言 出现时间 在1969年可以说 c语言 是 python的师傅添加图片注释,不超过 140 字(可选)python3 这个游乐场 就是用 c语言 编写的半角符号 注意引号 一定 要使用...英文半角 模式而不能用 中文全角 模式添加图片注释,不超过 140 字(可选)字符串 可以 加减 吗?...添加图片注释,不超过 140 字(可选)print 指的不是 印刷 吗?
匈牙利命名法具备语言独立的特性,并且首次在BCPL语言中被大量使用。由于BCPL只有机器字这一种数据类型,因此这种语言本身无法帮助程序员来记住变量的类型。...而低2g还不是程序可以直接访问的 还可以划分为 低64 和高64 这些是用户区用于和操作系统交互的缓冲区 现在剩下的内存还可以再分为 栈段 堆段 代码区 数据段 也就是咱们程序员常说的内存四区 而现在你的程序运行起来内存也不是都给你的...五丶字符和字符串 字符穿的存储和交互: 总共提出来2中概念 一种是: C语言风格的,在字符后面以0结尾,代表是一个字符串....另一种是Pascal风格 前几位(不确定,一般是2位)给定大小,后面存储大小一样的字符,形成一个字符串 他们的优缺点 C语言: 优点:灵活性比较高,特别是网络通信的时候,只要不是以0结尾,那么自己可以传输任意的字符...缺点:缺点就是比较明显了,如果要找第N个字符,那么要一个一个的查找, Pascal: 优点: 长度固定,访问N个的效率高,可以以跳板的形式访问 缺点: 缺乏灵活性,如果用于网络,那么传输完之后只能在传输新的
)设置优先级,否则仍然会降低程序响应,因为默认Thread的优先级和主线程相同 c)使用Handler处理子线程结果,而不是使用Thread.wait()或者Thread.sleep()来阻塞主线程 d...还记得上次码妞问过的“你是什么垃圾”吗??来复习下:《来自JVM的灵魂拷问》~~~ ? ?...04 有了二叉查找树,为什么还需要红黑树 二叉查找树的缺点 二叉查找树的特点就是左子树的节点值比父亲节点小,而右子树的节点值比父亲节点大,如图 ?...为什么有了平衡树还需要红黑树?...参考答案: 从数组两边开始计算,一个变量从开始到结尾,另一个变量从结尾到开头,两个变量相加,大于30,第2个变量--,小于30,第一个变量++ public class Sum { public static
,听说是产品在美帝被告了要走法律流程orz,说改天继续,当时我有点慌,幸好事后HR通知第二天接着面) 你在前面几轮面试自我感觉如何(答了自己之前表现的优缺点,数据库和网络因为科研学习没有应用就不太熟悉,...用过约束布局吗,它的特点和原理,比起相对布局的优势 Glide相关 https的加密过程,为什么要这么做?...最坏情况(O(N2))?什么输入最坏?(答曰有序最坏,分别追问顺序和逆序,一开始脑瘫说顺序O(N)逆序O(N2)面试官奸笑:你再想想) 链表怎么排序?说一下链表快排(口头撕了蛮久的) 进程&线程?...你如果真的在这方面有突出,就要举一个例子,比如是1个月从0到1考了什么证书等。 3、有开头有结尾,有逻辑 开头问候,结尾总结。中间1、2、3条理清楚。...(理解ThreadLocal) 是不是任何线程都可以实例化Handler?有没有什么约束条件?
本文将通过一个具体的例子来说明为什么使用表驱动测试值得我们了解。 下面函数实现的功能是将给定字符串的后缀\n或\r\n全部删除,直到末尾不含换行符\n或\r\n终止。...现在,假设我们要全面地测试这个函数,至少要覆盖以下几种情况: 输入的是空串 输入的字符串以\n结尾 输入的字符串以\r\n结尾 输入的字符串以多个\n结尾 输入的字符串不含换行符 一种可能的方法是为上面的每种输入情况创建一个单元测试...上面通过表驱动测试实现解决了前面测试代码存在的两个缺点: 每个测试名称现在都是一个字符串,而不是Pascal命名法(首字母大写,像EndingWithCarriageReturnNewLine)函数名称...后续如果添加新的测试用例,只需向结构体添加数据而不用动测试逻辑。...t.Run(name, func(t *testing.T) { t.Parallel() // Use tt }) } 但在使用表驱动测试的时候有一件事需要小心
缺点: 如果关键词在文本中出现较多,无法快速定位至某一次关键词出现的位置,依然会出现刷屏效果。...当我们不关注日志中间的一大坨内容,只关注开头或结尾的部分内容时,head和tail命令可以说是最好的解决方案。...基本命令格式: head/tail -n example.log 使用方法: 设置需要从文件开头/结尾查找的行数(n),即可显示对应结果。...缺点: 单独使用不能查找关键词。...拓展应用: 1、head/tail与grep命令结合使用 如果需要从文件开头或结尾一定范围内查找关键词,那么head/tail与grep结合使用就再方便不过了,使用管道符连接两个命令即可
真的是这样吗?如果传入以下字符串参数,会是什么结果呢? "-1" "+1" " " "111111111111" "" "1aab" 是不是发现并不是想象中的那样?...实现atoi函数需要注意什么 你可能已经注意到了,实现atoi需要考虑下面这些场景: 输入正负号 开头有空格 转换后的数值超出int的表示范围 出错时返回0与正确转换0的区别 输入非数字 空字符串 现在来看...,前面的实现还能满足要求吗?...我们需要考虑以下几种情况 如果开头是负号,则标记为负数;正号或数值,则标记为正数 跳过开头的空格,从第一个有效字符开始 使用更大类型存储计算值,如果负数比INT_MIN还小或正数比INT_MAX还大,则表明溢出...但这些都不是重点,重点是我们在考虑实现atoi函数的时候,需要考虑多种异常场景,这在平常实现其他功能接口的时候也是一样的。 思考 前面的代码有什么不足?你忽略了哪些场景?
\w - 匹配字母或数字或下划线或汉字(3.x版本可以匹配汉字,但2.x版本不可以) \s - 匹配任意的空白符 \b - 在正则表达式中表示单词的开头或结尾, 空格、标点、换行都算是单词的分割....\d - 表示一个数字 ^ - 匹配字符串的开始 $ - 匹配字符串的结束 [ ] - 使用方括号,在正则表达式中, []表示满足括号中任一字符....同理,还有: \W - 匹配任意不是字母,数字,下划线,汉字的字符 \D - 匹配任意非数字的字符 \B - 匹配不是单词开头或结束的位置 [a]的反义是[^a],表示除a以外的任意字符。...(但汉字在python2.x里面可能会有问题) \d{15,18} 表示15到18位的数字,可以用来检测身份证号码 ^1\d*x? 以1开头的一串数字,数字结尾有字母x,也可以没有。有的话就带上x。...如果我们确实要匹配.或者*字符本身,而不是要它们所代表的元字符,那就需要用\.或\*。\本身也需要用\\。 比如"\d+\.\d+"可以匹配出123.456这样的结果。 \bs\S*?
但是好像很多人并没有去思考过,是否有更好的方式呢? 当然,trim()在大多数情况下都工作得很好,但是Java中有许多不同的方法。每一种都有自己的优点和缺点。我们如何决定哪种方法最适合我们呢?...() : 删除字符串开头和结尾的空格。...strip() 不知道大家有没有注意到,在Java 11的发行版中,添加了新的strip()方法来删除字符串中的前导和末尾空格。 已经有了一个trim方法,为什么还要新增一个strip呢?...一些正则表达式的例子如下: \s+ 所有的空白字符 ^\s+ 字符串开头的所有空白字符 \s+$ 字符串结尾的所有空白字符 注意,在java中要添加/我们必须使用转义字符,所以对于...和replaceFirst 想要同时移除掉字符串开头和结尾的空白字符,可以使用strip、trim 想要移除掉字符串中的所有空白字符,可以使用replace和replaceAll 而Java 11种新增的
我们一生中,那么多有意思的事情,为什么就要去和别人比,感受美好的细胞,为什么要长在别人的身上,难道幸福不幸福,快乐不快乐,不应该是自己的感受,而不是因为别人过得不好,而感到自己瞬间幸福了,这是一个比惨的世界...一个数据库不是全能冠军就是好,而是他有特点,而特点已经大过了他的缺点,而一个没有特点的数据库,一会儿跟随着客户的要求去模仿ORACLE ,一会儿跟随客户的要求去模仿XXX ,最后你自己是什么,nothing...快,数据量大,还有别的吗,没有了,对没有了,是他太简单了,对是,他太简单了,就满足了快,和数据量大, 如果某database还没明白,请在看开头的那段文字。...最新发布的CLICKHOUSE 21.11, 有什么新的功能, 我们就说说其中最后一个最新版本的功能,在系统中添加了一个表,一个叫session_log 的表,可以记录登录的成功和失败的一个表。...最后使用CLICKHOUSE的广告词, 作为结尾,“其他的开源系统太慢,商用的系统太贵,只有Clickouse在成本与性能之间做到了良好平衡,即又快又开源”。
在正则表达式中,你可以参考一些实现的集合。 字母数字字符 如果你想匹配所有字母和数字字符,则需要这样的模式:/[A-Za-z0-9_]/。相当复杂不是吗?不过,有一种更短的方法:\w。...处理空格 在字符串中,有几种类型的空格字符: 空格 ” ” tab “/t” 新行 “\n” 回车符 “\r” 要创建一个匹配所有情况的模式,需要类似这样的复杂内容:/[\t\n\r]/。...使用加号会使它匹配一位或多位数字。如果在字符串的开头到结尾之间有数字,并且没有其他内容,则将模式用 ^ 和 $ 括起来能够确保仅匹配表达式。...在多行模式下,它们代表一行的开头和结尾,而不是整个字符串。...现在你更加了解了匹配模式,从而进一步了解如何指定要查找的样式的位置:字符串的开头与结尾,能够写出能够匹配整个字符串或行(多行模式下)的正则表达式。我们写出的模式将会越来越复杂:我鼓励你多去使用。
那么,定义成这样的SDS有什么好处呢?...预分配空间减少内存分配次数 实际上,在创建新的sds的时候,它并不仅仅申请要使用的内存,而是额外申请了一些空间,以避免下次修改的时候又需要重新申请内存。 什么意思呢?...如果有频繁地修改字符串,就会导致系统中频繁的内存申请,释放,拷贝,这样还能有高效的redis吗? 因此在redis中,如果有这样的情况,分配新的空间的时候,会预分配一些空间,以备下次使用。...它在创建的时候,将指针指向了buf,而不是sdshdr64结构的开头,即: ↓ len alloc flag buf 所以,类似下面这样的操作,也是安全的: strlen(pSds);/pSds...而正因如此,我们看到源码中,有很多地方sds使用了下标-1访问一些内容: 例如sdsIncrLen函数中 void sdsIncrLen(sds s, ssize_t incr) { unsigned
文章目录 “\r”和”\n”的区别 “\r”和”\n”的由来 回车键和输入的”\n”有不同吗?...这个顺序是固定的,但实际生活中不是这样,有时输入”\n”就能达到我们想要的效果,这是为什么呢?...”\r\n”的定义,而linux是”\n”,因此两个打开对方的文件就会显示出现差异 回车键和输入的”\n”有不同吗?...在应用格式时有用 软回车能使前后两行的行间距大幅度缩小,因为它不是段落标记,要和法定的段落标记——硬回车区别出来。硬回车的html代码是 … ,段落的内容就夹在里面,而软回车的代码很精悍: 。...里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号 如图,0a在ascII码中是”\n”的意思,因此如果文件在linux中打开,可以和
解决方法:在搜索词前使用 \C 指示Vim后续搜索区分大小写。 重复上一次搜索//。 查看搜索历史:history /;搜索模式下,用ctrl-n和ctrl-p快速向前和向后遍历搜索历史。...常用模式串系统 搜索以指定字符串开头或指定字符串结尾的行 用行首位置^指定开头字符串,比如/^nice搜索以nice开头的 用行尾位置指定结尾字符串,比如/nice搜索以nice结尾的 同时搜索多个字符串...:用|表示或,使用时需要用转义字符转义,即\|,也可在开头使用魔术关键字\v来实现不加转义字符,即/\v。...计数参数{0,}(零或多个)和{1,}(一个或多个)是最常见的搜索模式,Vim 为它们提供了特殊的操作符:*和+( +需要被转义,而* 可以正常运行而无需转义)。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
为了避免歧义且易于理解,通常不建议主题以 / 开头或结尾,例如 /chat 或 chat/。...共享订阅共享订阅是 MQTT 5.0 引入的新特性,用于在多个订阅者之间实现订阅的负载均衡,MQTT 5.0 规定的共享订阅主题以 $share 开头。...MQTT 主题常见问题及解答主题的层级及长度有什么限制吗?MQTT 协议规定主题的长度为两个字节,因此主题最多可包含 65,535 个字符。建议主题层级为 7 个以内。服务器对主题数量有限制吗?...同一个主题能被共享订阅与普通订阅同时使用吗?可以,但是不建议同时使用。常见的 MQTT 主题使用建议有哪些?...不建议使用 # 订阅所有主题;不建议主题以 / 开头或结尾,例如 /chat 或 chat/;不建议在主题里添加空格及非 ASCII 特殊字符;同一主题层级内建议使用下划线 _ 或横杆 - 连接单词(或者使用驼峰命名
领取专属 10元无门槛券
手把手带您无忧上云