美团面试被问“红黑树”,我一脸懵逼......
平衡二叉搜索树(Balanced Binary Search Tree),英文简称 BBST。经典常见的平衡二叉搜索树是 AVL 树和红黑树。 ①二叉搜索树 二叉搜索树(Binary Search Tree)是二叉树的一种,英文简称 BST。又称为二叉查找树、二叉排序树。 它的特点是任何一个结点的值都大于其左子树的所有结点的值,任何一个结点的值都小于其右子树的所有结点的值。
有点厉害!用12万行代码堆出来个"蔡徐坤",编译还能通过!
有个程序猿,用12万行代码堆出来个「蔡徐坤」,编译还能通过?!它是这样的:不是简单的灰度字符画!也不是控制台控制颜色!而是在唱、跳、rap的代码!连肩带,都是有灵魂的。这样的作品,来自B站UP主NyeJu。他利用代码编辑器为不同关键词显示不同的颜色的原理,生成代码,然后滑动形成视频。 这项技术的关键在于:在正确的位置上放上符合规范的代码,显示不同的颜色。
哈哈,代码比较工具,好像就这5款比较顺手
俗话说:三句不离本行,对于程序员这个可爱的群体来说也是一样,即使面对无休无止的编程工作,程序员们依旧任劳任怨的埋头苦干,梦想着用自己码下的代码改变世界。 工欲善其事,必先利其器,每一位程序员都有自己私藏的编程必备工具,接下来小编就给大家推荐5款程序员最佳的代码比较工具。
为什么不建议把数据库部署在 Docker 容器内?
近2年Docker非常的火热,各位开发者恨不得把所有的应用、软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗? 这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程,小编整理了一些数据库不适合容器化的原因供大家参考,同时也希望大家在使用时能够谨慎一点。
Java中的 9 个处理Exception的最佳实践,你知道几个?
在Java中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。 这也是绝大多数开发团队都会制定一些规则来规范对异常的处理的原因。而团队之间的这些规范往往是截然不同的。 本文给出几个被很多团队使用的异常处理最佳实践。
Java:实现文件批量导入导出实践(兼容xls,xlsx)
java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下。 目前我所接触过的导入导出技术主要有POI和iReport,poi主要作为一些数据批量导入数据库,iReport做报表导出。另外还有jxl类似poi的方式,不过貌似很久没跟新了,2007之后的office好像也不支持,这里就不说了。
Chrome 的小恐龙游戏,被我破解了...
一个阳光明媚的周末,透光的窗帘把我从睡梦中叫醒,大脑说今天是周六,可以慵懒个一上午,于是开心地打开我的 Mac 准备看两集 Rick and Morty 再起床洗漱。 我迫不及待打开了对应的网站,发现浏览器提示 No internet,这才发现因为我的动作太过于行云流水,电脑还没来得及连上 wifi
如何保证缓存与数据库的双写一致性?
分布式缓存是现在很多分布式应用中必不可少的组件,但是用到了分布式缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题? Cache Aside Pattern
前同事通过接私活年入60W,他常用19个私活平台汇总!
关于程序员接私活,社会各界说法不一。按照作者的观点来说如果你确实急用钱,价格又合适,那就去做。如果不怎么缺钱,那就接私活之前要好好考虑。私活的钱不好挣是一个方面,更重要的是如果你把做私活的时间花在提升自己上,产生的价值就要大得多。等你提升了自己,提升了固定薪水,远比拿的这点私活的钱划算。千万不要“捡了芝麻丢了西瓜”。
SQL 查询总是先执行SELECT语句吗?你们都错了!
很多 SQL 查询都是以 SELECT 开始的。不过,最近我跟别人解释什么是窗口函数,我在网上搜索”是否可以对窗口函数返回的结果进行过滤“这个问题,得出的结论是”窗口函数必须在 WHERE 和 GROUP BY 之后,所以不能”。 于是我又想到了另一个问题:SQL 查询的执行顺序是怎样的?
可惜了!哈工大 2 名大四准毕业学生被开除,此前已拿到知名大厂Offer,好前途毁于一旦,原因令人哭笑不
马上大学毕业,已经获得某知名互联网公司offer,只要等到毕业以后就可以顺利入职了。这2位哈工大大四学生已经拥有了比别人更高的起点,假以时日,他应该可以凭借自己的实力成就一番事业。 但是,令人遗憾的是,在毕业之前他被学校开除了,offer也没了,大好前途毁于一旦!
面试官:为什么 wait() 方法需要写在while里,而不是if?
那么问题是为啥这里是 while 而不是 if 呢?这个问题我最开始也想了很久,按理来说已经在 synchronized 块里面了嘛,就不需要了。这个也是我前面一直是这么认为的,直到最近看了一个 Stackoverflow 上的问题才对这个问题有了比较深入的理解。 试想我们要试想一个有界的队列。那么常见的代码可以是这样:
为什么美国程序员工作比中国程序员工作轻松、加班少?
那么为什么美国程序员就可以到点下班回家,而中国程序员就要每天“主动”、“无偿”加班呢?仔细看了群众们热情的回答之后,大概可以分为几派:1、产品经理不够通情达理,导致效率低下 2、表演性加班,太早回家会被认为不努力工作 3、不尊重技术人才,35岁警告⚠️ 4、中国处于后发追赶,不加班是追不上的
MySQL 的这个 BUG,坑了多少人?
近期,线上有个重要Mysql客户的表在从5.6升级到5.7后,master上插入过程中出现"Duplicate key"的错误,而且是在主备及RO实例上都出现。 以其中一个表为例,迁移前通过“show create table” 命令查看的auto increment id为1758609, 迁移后变成了1758598,实际对迁移生成的新表的自增列用max求最大值为1758609。
程序员的噩梦,你遇到过哪几条?
1、网上找不到答案2、最重要的键盘键坏了3、网崩了4、Bug无法重现5、我的bug伤害了别人6、没有文档或注释7、生病,不能写任何代码了8、遇到糟糕的老板或主管9、清理其他人的代码10、需求变更11、代码丢失了!12、令人头痛
图解 MySQL 索引:B-树、B+树
看了很多关于索引的博客,讲的大同小异。但是始终没有让我明白关于索引的一些概念,如B-Tree索引,Hash索引,唯一索引….或许有很多人和我一样,没搞清楚概念就开始研究B-Tree,B+Tree等结构,导致在面试的时候答非所问! 索引是什么?
我,一个靠 GitHub 打赏谋生的程序员,如何做到年入 10 万美元?
如果提到靠打赏生活的人,我们首先想到的会是主播。但现实情况是,程序员也可以。这位活成主播的程序员名叫 Caleb Porzio。 在过去的一年里,他靠 GitHub 项目的打赏赚到了 10 万美元。在他的自述文章中,他分享了自己靠 GitHub 项目赚钱的经历和技巧。Caleb Porzio 发推庆祝自己靠 GitHub 打赏(GitHub Sponsors)赚到了 10 万美元。
Java中的十大经典排序算法最强总结!!!
最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每个桶进行排序直接使用了Collection.sort()函数,这样虽然能达到效果,但对于算法研究来讲是不可以的。所以我根据这几天看的文章,整理了一个较为完整的排序算法总结,本文中的所有算法均有JAVA实现,经本人调试无误后才发出,如有错误,请各位前辈指
面试:你知道Java中的回调机制吗?
异步调用是为了解决同步调用可能出现阻塞, 导致整个流程卡住而产生的一种调用方式. 类A的方法方法a()通过新起线程的方式调用类B的方法b(), 代码接着直接往下执行, 这样无论方法b()执行时间多久, 都不会阻塞住方法a()的执行. 但是这种方式, 由于方法a()不等待方法b()的执行完成, 在方法a()需要方法b()执行结果的情况下(视具体业务而定, 有些业务比如启异步线程发个微
Java中的 9 个处理Exception的最佳实践,你知道几个?
在Java中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。 这也是绝大多数开发团队都会制定一些规则来规范对异常的处理的原因。而团队之间的这些规范往往是截然不同的。