敖丙

其他

为什么阿里巴巴强制要求使用包装类型定义属性?

在阿里巴巴Java开发手册中,对于POJO中如何选择变量的类型也有着一些规定:这里强制要求使用包装类型,原因是什么呢?我们来看一段简单的代码
2021年10月22日
其他

可重入锁

使用Java进行多线程开发,使用锁是一个几乎不可避免的问题。今天,就让我们来聊一聊这个基础,但是又特别特别重要的话题。首先,让我们来看一下,到底什么是锁?
2021年3月11日
其他

写给傻瓜看的:垃圾回收底层原理

我们已经根据对象存活的特性进行了分代,提高了垃圾收集的效率,但是像在回收新生代的时候,有可能有老年代的对象引用了新生代对象,所以老年代也需要作为根,但是如果扫描整个老年代的话效率就又降低了。
2020年11月11日
其他

一口气搞懂MySQL索引所有知识点

这个特点就是为了保证每次查找都可以这折半而减少IO次数,但是二叉树就很考验第一个根节点的取值,因为很容易在这个特点下出现我们并发想发生的情况“树不分叉了”,这就很难受很不稳定。
2020年10月22日
其他

Dubbo系列-扬帆起航

框架就是要实现像那小助手一样的东西,目的就是让我们使用远程调用像本地调用一样简单方便,并且解决一些远程调用会发生的一些问题,使用户用的无感知、舒心、放心、顺心,它好我也好,快乐没烦恼。如何设计一个
2020年8月18日
其他

分布式事务

是一种尽量保证强一致性的分布式事务,因此它是同步阻塞的,而同步阻塞就导致长久的资源锁定问题,总体而言效率低,并且存在单点故障问题,在极端条件下存在数据不一致的风险。当然具体的实现可以变形,而且
2020年8月15日
其他

三歪非要听我说完分布式才肯睡

前言之前写了一篇秒杀系统的文章,最后给自己埋了分布式事务的坑,然后很多读者就要求我去写分布式事务,那作为程序员届的暖男,我一向是有求必应的,就算是不睡觉我都要写给你们看的!因为分布式事务是:分布式
2020年8月11日
其他

面试题:如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?

核心点有很多,为了更贴合实际场景,我从常见的面试问题入手:如何保证消息不丢失?如何处理重复消息?如何保证消息的有序性?如何处理消息堆积?当然在剖析这几个问题之前需要简单的介绍下什么是消息队列,消息队列常见的一些基本术语和概念。接下来进入正文。什么是消息队列来看看维基百科怎么说的,顺带学学英语这波不亏:In
2020年7月17日
其他

敖丙用对了这些场景下的索引,技术总监夸我棒

前言生产上为了高效地查询数据库中的数据,我们常常会给表中的字段添加索引,大家是否有考虑过如何添加索引才能使索引更高效,考虑如下问题添加的索引是越多越好吗为啥有时候明明添加了索引却不生效索引有哪些类型如何评判一个索引设计的好坏看了本文相信你会对索引的原理有更清晰的认识。本文将会从以下几个方面来讲述索引的相关知识,相信大家耐心看了之后肯定有收获,码字不易,别忘了「在看」,「转发」哦。什么是索引,索引的作用索引的种类高性能索引策略索引设计准则:三星索引什么是索引,索引的作用当我们要在新华字典里查某个字(如「先」)具体含义的时候,通常都会拿起一本新华字典来查,你可以先从头到尾查询每一页是否有「先」这个字,这样做(对应数据库中的全表扫描)确实能找到,但效率无疑是非常低下的,更高效的方相信大家也都知道,就是在首页的索引里先查找「先」对应的页数,然后直接跳到相应的页面查找,这样查询时候大大减少了,可以为是
2020年7月8日
其他

三歪连MVCC和事务隔离级别的关系都不知道...

不经一番寒彻骨,怎得梅花扑鼻香前言数据库存在几种事务隔离级别我想不用我说,大家也都知道的吧?什么?还不知道?还不知道就自己去补课,我默认大家都知道了。算了我是暖男,在贴一下给大家看看,下次可别忘了哈。有四种:读未提交(READ
2020年6月23日
其他

ArrayList源码解析,老哥,来一起复习一哈?

elementData(index);}该方法直接返回elementData数组指定下标的元素,效率还是很高的。所以ArrayList,for循环遍历效率也是很高的。序列化方法
2020年5月3日
其他

面试官:HashMap 为什么线程不安全?

扩容造成死循环分析过程前提条件:这里假设#1.hash算法为简单的用key
2020年4月21日
其他

妈妈再也不担心我面试被Redis问得脸都绿了

如果要存储几百兆字节的文件,会给缓存带来很大的压力,这样也没有必要;在考虑了这些问题之后,如果觉得有必要使用缓存,那么就使用它!■使用缓存会出现什么问题?一般来说有如下几个问题,回答思路遵照
2020年4月9日
自由知乎 自由微博
其他

MySQL的索引是怎么加速查询的?

B+树在插入的过程中是怎么维护它的几个特性的:有序:左边节点比右边小自平衡:左右两边数量趋于相等节点分裂:节点在遇到元素数量超过节点容量时,是如何分裂成两个的,这个也是
2020年2月19日
其他

《爱上面试官》系列-数据库索引

前言写数据库,我第一时间就想到了MySQL、Oracle、索引、存储过程、查询优化等等。不知道大家是不是跟我想得一样,我最想写的是索引,为啥呢?以下这个面试场景,不知道大家熟悉不熟悉:面试官:数据库有几千万的数据,查询又很慢我们怎么办?面试者:加索引。面试官:那索引有哪些数据类型?索引是怎么样的一种结构?哪些字段又适合索引呢?B+的优点?聚合索引和非聚合索引的区别?为什么说索引会降低插入、删除、修改等维护任务的速度?……..面试者:面试官怎么出我们公司门来着😂。是的大家可能都知道慢了加索引,那为啥加,在什么字段上加,以及索引的数据结构特点,优点啥的都比较模糊或者甚至不知道。那我们也不多BB了,直接开始这次的面试吧。正文我看你简历上写到了熟悉MySQL数据库以及索引的相关知识,我们就从索引开始,索引有哪些数据结构?Hash、B+大家去设计索引的时候,会发现索引类型是可以选择的。为什么哈希表、完全平衡二叉树、B树、B+树都可以优化查询,为何Mysql独独喜欢B+树?我先聊一下Hash:大家可以先看一下下面的动图注意字段值所对应的数组下标是哈希算法随机算出来的,所以可能出现哈希冲突。那么对于这样一个索引结构,现在来执行下面的sql语句:select
2020年2月18日
其他

学习linux命令,看这篇2w多字的命令详解就够了

用心分享,共同成长没有什么比每天进步一点点更重要了序言 本篇文章主要讲解了一些linux常用命令,主要讲解模式是,命令介绍、命令参数格式、命令参数、命令常用参数示例。由于linux命令较多,我还特意选了一些日常使用较为频繁的命令进行讲解,但还是免不了文章很长,建议大家收藏起来,用到的时候不会了再来阅读。当然学习linux命令最好的方法是学会使用linux自带的man手册,所有linux命令规范和使用细则都会在该手册中讲解的很清楚,我在书写的过程中也是参考该手册和日常使用情况。如果还有哪些是大家希望再补充的命令,可以留言给我,我会持续更新该文章,同时也作为我学习和工作的手册。Linux初级指令ls
2019年12月31日
其他

《大厂面试》面试官看了直呼想要的简历

你知道的越多,你不知道的越多前言昂每周我的邮箱都会收到各式各样的简历,但是说实话通过率真的太低了,hr都要吐槽我了,大家还是要好好写简历呀,能力再强简历差了,也不行啊。HR经常一天过几百份,甚至上千份简历,可能看10-30秒就会觉得留下来继续看一下,是邀约面试,还是PASS掉,但是很多简历甚至那10秒都撑不到。都说“人靠衣装佛靠金装”,同理我们出去找工作,简历也是我们的门面了,你想找到好工作,就得先过简历这一关了。那被PASS的原因就很多了,要么是不符合招聘要求,比如学历不符、个人硬实力不符、年限、薪资不匹配、简历花里胡哨、简历看不下去了等等。总之总有一个因素是你简历投递出去,石沉大海,也不要抱怨对方不给你机会,或许是你简历乱写,不注意细节,这算是自己不给自己机会呢,对吧?正文
2019年12月30日
其他

《吊打面试官》系列-ConcurrentHashMap & Hashtable(文末送书)

你知道的越多,你不知道的越多前言作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚(请允许我使用一下夸张的修辞手法)。于是在一个寂寞难耐的夜晚,我痛定思痛,决定开始写互联网技术栈面试相关的文章,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的同僚瞠目结舌,疯狂收割大厂Offer!所有文章的名字只是我的噱头,我们应该有一颗谦逊的心,所以希望大家怀着空杯心态好好学,一起进步。回手掏
2019年12月18日
其他

《程序人生》系列-害敖丙差点被开除的P0事故

Automaton(NFA)。org.apache.lucene.util.automaton.Operations类里的determinize方法则会将NFA转换为DFA/**
2019年12月5日
其他

《吊打面试官》系列-Redis常见面试题

里的某个字段。但是这个的场景其实还是多少单一了一些,因为现在很多对象都是比较复杂的,比如你的商品对象可能里面就包含了很多属性,其中也有对象。我自己使用的场景用得不是那么多。List:List
2019年11月13日
其他

《吊打面试官》系列-Redis哨兵、持久化、主从、手撕LRU

你知道的越多,你不知道的越多点赞再看,养成习惯前言Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下夸张的修辞手法),打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚,在一个寂寞难耐的夜晚,我痛定思痛,决定开始写《吊打面试官》系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的同僚瞠目结舌,疯狂收割大厂Offer!絮叨写这期其实比较纠结,我之前的写的比较通俗易懂,一是我都知道这些点,二是之前我在所在的电商公司对雪崩,击穿啥的还算有场景去接触。但是线上的Redis集群我实际操作经验很少,总不能在公司线上环境实践那些操作吧,所以最后看了下官网,还有一些资料(文章后面我都会贴出来),强行怼了这么篇出来。最近双十一小忙,周末双十一值班目测没时间写,那我是暖男呀,我不能鸽啊,就有了这一篇,下一篇迟到你们不要喷我哈,而且下一篇还是Redis的终章还是得构思下,不熟悉的知识点我怕漏洞多,特意让以前的大牛同事看了下,所以有啥不对的地方大家及时留言Diss我,写这篇是真的难,诺下面就是我本人某天凌晨两点的拍的视频,多动症的仔。我之前发了一个动态,到300赞就发第三篇咋样没骗你们吧,就很枯竭,不BB了,开搞。不点个赞对不起我,这次不要白嫖我!正文上几期《吊打面试官》还没看的小伙伴可以回顾一下(明明就写了两期说的好像很多一样)!《吊打面试官》系列-Redis基础《吊打面试官》系列-缓存雪崩、击穿、穿透大家都知道一个技术的引入方便了开发,解决了各种问题,但是也会带来对应的问题,技术是把双刃剑嘛,集群的引入也会带来很多问题,如:集群的高可用怎么保证,数据怎么同步等等,我们话不多说,有请下一位受害者为我们展示。面试开始
2019年11月12日
其他

《吊打面试官》系列-缓存雪崩、击穿、穿透

你知道的越多,你不知道的越多前言Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下夸张的修辞手法),打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚,在一个寂寞难耐的夜晚,我痛定思痛,决定开始写《吊打面试官》系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的同僚瞠目结舌,疯狂收割大厂offer!一点感慨本来都把稿子放到公众号保存了,洗澡的时候想了一下晚上的比赛,觉得还是打开电脑写点东西,跟文章内容没关系,只是一点个人的感慨,不知道多少小伙伴看了昨天SKT
2019年11月6日
其他

《吊打面试官》系列-Redis基础

在技术面试的时候,不管是Redis还是什么问题,如果你能举出实际的例子,或者是直接说自己开发过程的问题和收获会给面试官的印象分会加很多,回答逻辑性也要强一点,不要东一点西一点,容易把自己都绕晕的。
2019年11月5日