问题背景 我的天,最近做 Code Review 看到一个同事的骚操作,他写了一个工具类,大概是这样的: public static boolean isNull(Object object){ return null == object || object.equals(null); } 判断空,一般不是 null == object 就够了,object.equals(null) 是什么骚操作? 写程序这么多年,第一次看这样的写法,当时我就提出质疑了,同事拍着胸脯和我说,有个银行的请求参数必…
如果xxx不是null的话,xxx==null将返回false,如果xxx是null的话,xxx将返回ture 而对xxx.equals(null)而言,他将永远返回false,因为如果xxx不是null,将不会返回false,如果xxx是null的话,将会抛出空指针异常NullPointerException. 总结一句话就是:永远不要用xxx.equals(null),因为没有意义.…
Redis 字符串底层用的是 sds 结构,该结构同 c 语言的字符串相比,其优点是可以节省内存分配的次数,还可以... 这样写是不是读起来很无聊?这些都是别人咀嚼过后,经过一轮两轮三轮的再次咀嚼,吐出来的精华,这就是为什么好多文章你觉得干货满满,但就是记不住说了什么.我希望把这个咀嚼的过程,也讲给你,希望以后再提到 Redis 字符串时,它是活的. 前置知识:本篇文章的阅读需要你了解 Redis 的编码类型,知道有这么回事就行,如果比较困惑可以先读一下 <面试官问我 redis 数据类型,我回…
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合.缓存.并发.I/O等多个方面.使用这些API一方面可以简化我们代码,使代码更为优雅,另一方面它补充了很多jdk中没有的功能,能让我们开发中更为高效. 今天Hydra要给大家分享的就是Guava中封装的一些关于Map的骚操作,在使用了这些功能后,不得不说一句真香.先引入依赖坐标,然后开始我们的正式体验吧~ <dependency> <grou…
前言 即使这是一本小册,但基于"不提笔不读书"的理念,仍然有必要总结一下.此小册对于那些"硬杠 Netty 源码 却不曾在千万级生产环境上使用实操"的用户非常有用.当然,对那些没有 Netty 编程经验的人来说,更为有用. 放个小册地址:[Netty 入门与实战:仿写微信 IM 即时通讯系统](https://juejin.im/book/5b4bc28bf265da0f60130116) 再次强烈推荐,一碗黄焖鸡/半杯 Luckin coffee/一包炫赫门 的价…
C. Equal Sums time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given kk sequences of integers. The length of the ii-th sequence equals to nini. You have to choose exactly two sequen…
概要 回顾以前写的项目,发现在规范的时候,还是可以做点骚操作的. 假使以后还有新的项目用到了MySQL,那么肯定是要实践一番的. 为了准备,创建测试数据表(建表语句中默认使用utf8mb4以及utf8mb4_unicode_ci,感兴趣的读者可以自行搜索这两个配置): CREATE TABLE `student` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `no` int(11) unsigned NOT NULL DEFAULT '0'…
前言 聊起 redis 咱们大部分后端猿应该都不陌生,或多或少都用过.甚至大部分前端猿都知道. 数据结构: string. hash. list. set (无序集合). setsorted(有序集合), 运维方面 : 持久化,主从复制,集群,故障恢复 , 园子里已经由大佬科普过了,官方文档也能查到, 这里就不细说 redis的“发展起家史”. 咱们今天就聊聊redis的缓存应用场景(不推荐用redis做分布式锁),redis常见操作(击穿,雪崩,缓存数据量过大等),常见问题及处理方式.怎么用到…
C#中的9个"黑魔法"与"骚操作" 我们知道C#是非常先进的语言,因为是它很有远见的"语法糖".这些"语法糖"有时过于好用,导致有人觉得它是C#编译器写死的东西,没有道理可讲的--有点像"黑魔法". 那么我们可以看看C#这些高级语言功能,是编译器写死的东西("黑魔法"),还是可以扩展(骚操作)的"鸭子类型". 我先列一个目录,大家可以对着这个目录试着下判断,说说是&q…
阅读本文大概需要 1.5 分钟. 大家好,这是极客精神[C#.NET 拾遗补漏]专辑的第 5 篇文章,今天要讲的内容是操作符. 操作符的英文是 Operator,在数值计算中习惯性的被叫作运算符,所以在中文的概念中,运算符是操作符的一个子集. 操作符是很基础的知识了,基础归基础,我们来回顾一下 C# 操作符那些比较骚的操作,能想到的不多,请大家补充. 操作符的重载 操作符重载大部分语言都没有,而 C# 有.C# 允许用户定义类型对操作符进行重载,方式是使用 operate 关键字把操作符写成公开…