最后,遍历一遍Bit区域,将该位是一的位的编号输出(2,3,4,5,7),这样就达到了排序的目的,时间复杂度O(n)。...首先,根据“内存空间不足以容纳这05亿个整数”我们可以快速的联想到Bit-map。下边关键的问题就是怎么设计我们的Bit-map来表示这20亿个数字的状态了。...但是对于某些应用场景而言,这属于一种巨大的浪费,因为我们可以用对应的32bit位对应存储十进制的0-31个数,而这就是Bit-map的基本思想。...补充1 在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方,右移一位相当于除2,右移n位相当于除以2的n次方。...牛逼哄哄的布隆过滤器,到底有什么用?这篇推荐看下。 如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定。
程序员是一个苦逼的职业,也是一个牛逼的工作。 ...作为一个程序员,他要懂得各种网络语言,需要懂得各种代码编程,可以说是屌丝中的屌丝,牛人中的牛人,C++、java什么的对他们来说都是浮云,他们有着一个远大的方向。 ...亲爱的你们,中枪的有木有?
如果你参与的是多人协作,它更是一个无价之宝,你不仅可以看到别人对代码的修改,还可以同时解决由于并行开发带来的冲突。 版本控制系统可以轻松地帮助我们解决这些棘手的问题: 当前模块是谁编写的?...这个文件的这一行代码是什么时候被修改的?是谁做出的修改?修改的原因是什么? 最近的 100 个版本中,哪个版本导致单元测试失败了?...版本控制系统有很多,其中最突出的代表就是 Git——关于它诞生的历史,可以参照我之前分享的一篇内容:一次改变世界的代码提交。...尽管 Git 的接口有些难懂,但它底层的设计和思想却非常的优雅。难懂的接口只能靠死记硬背,但优雅的底层设计则非常容易理解。...我们可以通过一种自底向上的方式来学习 Git,先了解底层的数据模型,再学习它的接口。可以这么说,一旦搞懂了 Git 的数据模型,再学习它的接口并理解这些接口是如何操作数据模型的就非常容易了。
只不过,Vim 的学习曲线相当的大,这是一个连我都不得不承认的事实。就好像弹一把吉他,一开始学起来非常痛苦,简直想摔了它,但学会后,就能感受到乐器的无限魅力,以及学妹崇拜的小眼神。...80 年代末,布莱姆·米勒在一个开源的 vi(更早的一种计算机文本编辑器,我记得有个读者的网名就叫这个)基础上开发了 Vim 1.0 版本。...Vim 有很多聪明的设计,所以很多其他工具也支持 Vim 模式,比如说 Visual Studio Code。很牛掰的一点是,Vim 逃离了鼠标的“魔掌”,只通过键盘就可以肆意地操作文本。...上下左右移动:对应上下左右键 按照词移动:w(下一个词),b(单词的第一个字母),e(单词的最后一个字母),不适合中文 按照行移动:0(第一行),$(行尾),:+行数直接跳转到指定的行(此处的+意味着按下...同样的,当我们熟练掌握了上述这些命令之后,也会感到空前的寂寞,因为 Vim 的强大绝不止于此。 来看一下,Vim 是怎么重复自己的。 键入 . 可以重复上一次的命令。这意味着什么呢?
那么,Stream API 的性能到底如何呢,代码整洁的背后是否意味着性能的损耗呢?本文对 Stream API 的性能一探究竟。...,Java 性能测试更费劲,因为虚拟机对性能的影响很大,JVM 对性能的影响有两方面: GC 的影响。...GC 的行为是 Java 中很不好控制的一块,为增加确定性,我们手动指定使用 CMS 收集器,并使用 10GB 固定大小的堆内存。...的 taskset 命令指定 JVM 可用的核数。...并行迭代性能跟可利用的核数有关,上图中的并行迭代使用了全部 12 个核,为考察使用核数对性能的影响,我们专门测试了不同核数下的 Stream 并行迭代效果: ?
光照角度、人脸角度、年龄、头发、眼镜、胡须、表情等多维角度都可以单独调节: StyleFlow,牛逼! 效果非常好,特别是光照角度的改变,很逼真。...曾经风靡一时的 StyleGAN,给人们带来很多震撼,逼真的肖像,你根本分不清,哪张图片是算法生成的。 看一下 StyleGAN v2 人脸生成的效果: ? 这些人脸,都是算法随机生成的。...为了更好的对数据进行分类或生成,需要对数据的特征进行表示,但是数据有很多特征。...这些特征之间相互关联,耦合性较高,导致模型很难弄清楚它们之间的关联,使得学习效率低下,因此需要寻找到这些表面特征之下隐藏的深层次的关系,将这些关系进行解耦,得到的隐藏特征,即 latent code。...按上图的步骤,即可调整人脸的各种属性。 动起手来,一起体验一下吧~
两个月之前—— 为满足用户标签的统计需求,小灰利用Mysql设计了如下的表结构,每一个维度的标签都对应着Mysql表的一列: 要想统计所有90后的程序员该怎么做呢?...给定长度是10的bitmap,每一个bit位分别对应着从0到9的10个整型数。此时bitmap的所有位都是0。 2....把整型数4存入bitmap,对应存储的位置就是下标为4的位置,将此bit置为1。 3. 把整型数2存入bitmap,对应存储的位置就是下标为2的位置,将此bit置为1。 4....把整型数1存入bitmap,对应存储的位置就是下标为1的位置,将此bit置为1。 5. 把整型数3存入bitmap,对应存储的位置就是下标为3的位置,将此bit置为1。...显然,非90后用户实际上只有1个,而不是图中得到的8个结果,所以不能直接进行非运算。 同样是刚才的例子,我们给定90后用户的Bitmap,再给定一个全量用户的Bitmap。
那么,Stream API的性能到底如何呢,代码整洁的背后是否意味着性能的损耗呢?本文对Stream API的性能一探究竟。...,Java性能测试更费劲,因为虚拟机对性能的影响很大,JVM对性能的影响有两方面: 1、GC的影响。...GC的行为是Java中很不好控制的一块,为增加确定性,我们手动指定使用CMS收集器,并使用10GB固定大小的堆内存。...图中展示的是for循环外部迭代耗时为基准的时间比值。分析如下: 1、对于基本类型Stream串行迭代的性能开销明显高于外部迭代开销(两倍); 2、Stream并行迭代的性能比串行迭代和外部迭代都好。...并行迭代性能跟可利用的核数有关,上图中的并行迭代使用了全部12个核,为考察使用核数对性能的影响,我们专门测试了不同核数下的Stream并行迭代效果: ?
Java8的Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。 那么,Stream API的性能到底如何呢,代码整洁的背后是否意味着性能的损耗呢?...,Java性能测试更费劲,因为虚拟机对性能的影响很大,JVM对性能的影响有两方面: 1、GC的影响。...GC的行为是Java中很不好控制的一块,为增加确定性,我们手动指定使用CMS收集器,并使用10GB固定大小的堆内存。...图中展示的是for循环外部迭代耗时为基准的时间比值。分析如下: 1、对于基本类型Stream串行迭代的性能开销明显高于外部迭代开销(两倍); 2、Stream并行迭代的性能比串行迭代和外部迭代都好。...并行迭代性能跟可利用的核数有关,上图中的并行迭代使用了全部12个核,为考察使用核数对性能的影响,我们专门测试了不同核数下的Stream并行迭代效果: ?
时不时就有读者私信我,“二哥,我的代码写得很烂,该怎么办呀?” 写代码确实是门手艺活,这是我们程序员不得不承认的一个事实,毕竟要用手指头来敲啊!不是手艺活是啥(笑) 简单来分析一下代码写得烂的原因哈。...其一,可能是刚入门,代码写得少,如果我们满打满算只写过一两千行代码,是不可能写出多优雅的代码的。...来看一下设计模式的目录吧(下图中只展现了创建型模式和结构型模式中的一部分,还有行为模式): 每个模式都会对应一篇图文并茂的文章,阅读起来就好像在读绘本一样,生动有趣,令人印象深刻,学起来就没有半点枯燥的感觉...来看一下工厂方法模式的一部分内容截图,这图片的质量,确实高啊,不服不行!...按照作者说的: 很高兴你能拿到这本书,如果你能坚持看完并按照书中的例⼦进行实践,那么在编程开发的世界里,就⼜多了了⼀个可以写出良好代码的⼈,同时也为架构师培养储备了了⼀个⼈才。
大家好,我是吴师兄,今天主要是介绍几个用于学习数据结构和算法的“酷炫”网站,很好玩。 这几个网站真的很牛逼,动画效果比我用 PPT 手工制作好太多。...,使用它可以选择你想要学习的数据结构,在添加数据的过程中,会生成相应的数据结构,同时会模拟它们执行的过程。...VisuAlgo 包含了程序员必学的数据结构和算法,比如排序、链表、哈希表、二叉树、图等,它把算法的执行过程以最直观可视化的形式展示出来,很多我一开始无法理解的抽象算法一下子立体化,犹如打通了任督二脉,...除此之外,该网站也是可以用动画的方式演示算法的,而且还包含了算法的文字讲解,可以很方便的学习到你所想要了解的算法,如下图所示: ?...下面是冒泡排序的可视化界面,左侧是当前程序执行的可视化结果,右侧实时显示程序当前执行到哪一行,可以说非常简洁直观了,而且也支持很多复杂的算法。 ?
一、思路分析 把装有n个数字的数组nums分成k个和相同的集合,你可以想象将n个数字分配到k个「桶」里,最后这k个「桶」里的数字之和要相同。 前文 回溯算法框架套路 说过,回溯算法的关键在哪里?...用不同的视角进行穷举,虽然结果相同,但是解法代码的逻辑完全不同;对比不同的穷举视角,可以帮你更深刻地理解回溯算法,我们慢慢道来。...如何尽可能多的命中这个 if 分支呢?要知道我们的index参数是从 0 开始递增的,也就是递归地从 0 开始遍历nums数组。...当然,这是理论上的最坏复杂度,实际的复杂度肯定要好一些,毕竟我们添加了这么多剪枝逻辑。不过,从复杂度的上界已经可以看出第一种思路要慢很多了。 所以,谁说回溯算法没有技巧性的?...虽然回溯算法就是暴力穷举,但穷举也分聪明的穷举方式和低效的穷举方式,关键看你以谁的「视角」进行穷举。
使用fluent mybatis可以不用写具体的xml文件,通过java api可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一。...2 三者对比 使用fluent mybatis 来实现上面的功能 我们可以看到fluent api的能力,以及IDE对代码的渲染效果。...那换成mybatis plus的效果怎样呢?...4 换成mybatis plus实现效果 mybatis plus的实现比mybatis会简单比较多,实现效果如下: 如红框圈出的,写mybatis plus实现用到了比较多字符串的硬编码(可以用Entity...字符串的硬编码,会给开发同学造成不小的使用门槛,个人觉的主要有2点: 1. 字段名称的记忆和敲码困难 2.
使用fluent mybatis可以不用写具体的xml文件,通过java api可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一。...三者对比 使用fluent mybatis 来实现上面的功能 图片 我们可以看到fluent api的能力,以及IDE对代码的渲染效果。...那换成mybatis plus的效果怎样呢?...换成mybatis plus实现效果 mybatis plus的实现比mybatis会简单比较多,实现效果如下: 图片 如红框圈出的,写mybatis plus实现用到了比较多字符串的硬编码(可以用Entity...字符串的硬编码,会给开发同学造成不小的使用门槛,个人觉的主要有2点: \1. 字段名称的记忆和敲码困难 \2.
链接地址:https://www.zitijia.com/t/%E5%85%8D%E8%B4%B9%E5%95%86%E7%94%A8 在这里下载的字体都是免版权免费使用的字体 切记是免费商用字体分区里的...有了它,你也可以制作自己心仪的表情包 链接地址:http://www.doutula.com/maker 六、在线工具大全 ? 网上流传的王思聪微博图片生成方法终于找到了 ?...但是某些功能是收费的 ? 链接地址:http://www.nicetool.net/ 七、免费在线文件转换器 ?...免费转换10m以内所有文件格式 大于10m要收费的 链接地址:https://cn.office-converter.com/ 八、pixivic 二次元老婆搜索 ?...几百种模板任你选(有的不是免版权的)制作自己心仪的片头 链接地址:https://panzoid.com/
] 此时需要检测一个从表的外键需要约束为主表的已存在的值。...having 对筛选出的结果再次进行过滤。 having 字段必须是查询出来的,where 字段必须是数据表存在的。 where 不可以使用字段的别名,having 可以。...对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。...持久性(Durability) 一个事务一旦被提交,它对数据库中的数据改变就是永久性的。 -- 事务的实现 1. 要求是事务支持的表类型 2....-- 事务的原理 利用InnoDB的自动提交(autocommit)特性完成。 普通的MySQL执行语句后,当前的数据提交操作均可被其他客户端可见。
SQL: insert into b(a, b, c) select d,e,f from b;
推荐一款工具Psi-probe,非常强大,可以监控Tomcat发布服务和主机的性能。 ? psi-probe安装 下载源码,编译war。...通过Tomcat Manager Deploy war,或者将probe.war放到Tomcat的webapps目录下。 功能简介 通过http://host/probe访问服务。 ?...DataSource Deployment Logs Threads Cluster System Connectors Certificates Quick check 1.Application 查看部署的应用...2.Datasource 监控数据源 3.Deployment 与Tomcat Application Manager的部署应用功能一样。 4.查看log信息 ?
领取专属 10元无门槛券
手把手带您无忧上云