摘要:前言:二叉树的遍历形式有很多,比如前序、中序、后序、层序遍历,在最近的一次面试中,面试官要求手写层序遍历代码(非递归的形式),由此可见遍历的重要性.本篇博客我们就来看一下二叉树的几种遍历方式.本篇博客语言均采用java实现: 目录: 一:二叉树简介 二:前序遍历 三:中序遍历 四:后序遍历 五:层序 阅读全文
posted @ 2020-12-10 23:05 Yrion 阅读(989) 评论(2) 推荐(2) 编辑
摘要:前言:在分布式的系统中,存在很多的节点,节点之间如何进行协作运行、高效流转、主节点挂了怎么办、如何选主、各节点之间如何保持一致,这都是不可不面对的问题,此时raft算法应运而生,专门 用来解决上述问题。对于分布式的一致性算法,著名的有paxos,zookeeper基于paxos提出了zab协议, p 阅读全文
posted @ 2020-10-31 21:47 Yrion 阅读(905) 评论(0) 推荐(1) 编辑
摘要:前言:jdk作为我们每天必备的调用类库,里面大量提供了基础类供我们使用.可以说离开jdk,我们的java代码寸步难行,jdk带给我们的便利可谓是不胜枚举,但同时这些方法在使用起来也存在一些坑,如果不注意就很容易掉入到陷阱里面,导致程序抛出错误。jdk中的很多方法都不会做非null判断,可能设计jdk 阅读全文
posted @ 2020-08-31 21:09 Yrion 阅读(798) 评论(2) 推荐(3) 编辑
摘要:前言: 首先思考一个问题:在高并发的场景中,关于数据库都有哪些优化的手段?常用的有以下的实现方法:读写分离、加缓存、主从架构集群、分库分表等,在互联网应用中,大部分都是读多写少的场景,设置两个库,主库和读库,主库的职能是负责写,从库主要是负责读,可以建立读库集群,通过读写职能在数据源上的隔离达到减少 阅读全文
posted @ 2020-07-31 12:39 Yrion 阅读(1249) 评论(1) 推荐(3) 编辑
摘要:前言:最近在开发一个功能:动态展示的订单数量排名前10的城市,这是一个典型的Top-k问题,其中k=10,也就是说找到一个集合中的前10名。实际生活中Top-K的问题非常广泛,比如:微博热搜的前100名、抖音直播的小时榜前50名、百度热搜的前10条、博客园点赞最多的blog前10名,等等如何解决这类 阅读全文
posted @ 2020-06-30 21:13 Yrion 阅读(1184) 评论(0) 推荐(4) 编辑
摘要:前言: 二分查找作为很常见的一种算法,基本思想是定义头和尾双指针,计算中间的index指针,每次去和数组的中间值和目标值进行比较,如果相同就直接返回,如果目标值小于中间值就将尾指针重新赋值为中间值-1,头指针不变,相当于从左边区域去找;如果目标值大于中间值就将头指针赋值为中间值+1,尾巴指针不变,相 阅读全文
posted @ 2020-05-30 02:15 Yrion 阅读(454) 评论(2) 推荐(0) 编辑
摘要:前言 从业快4年,最近愈发感觉到算法的重要性.作为一名后端开发,在实际工作中,算法的应用其实是十分多的,比如我们熟悉的LinkedList、jdk的底层排序,算法的重要性大家都有目共睹,也成了入职大厂不可或缺的基本能力。最近就听群里的伙伴说面试字节跳动的时候要求现场写出以k个为一组反转链表,如果不做 阅读全文
posted @ 2020-04-29 13:35 Yrion 阅读(827) 评论(0) 推荐(0) 编辑
摘要:前言:在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?本篇博客我们就来分析这个问题,探讨一下内部的原因。 本篇 阅读全文
posted @ 2020-03-24 22:10 Yrion 阅读(9961) 评论(15) 推荐(7) 编辑
摘要:前言:开闭原则一直是软件开发领域中所追求的,开闭原则中的"开"是指对于组件功能的扩展是开放的,是允许对其进行功能扩展的,“闭”,是指对于原有代码的修改是封闭的,即不应该修改原有的代码。对于一个高度集成化的、成熟、稳健的系统来讲,永远不是封闭、固守的,它需要向外提供一定的可扩展的能力,外部的实现类或者 阅读全文
posted @ 2020-02-09 21:41 Yrion 阅读(1104) 评论(4) 推荐(0) 编辑
摘要:前言:在这个知识分享的爆炸时代,鉴于java生态的完整和繁荣,各种框架、中间件和工具包供我们使用。连新培训出来的人都知道ssm,微服务、集群、多线程、队列、高并发等技术,技术的间隔性正变得越来越小,仿佛我们只需要按部就班的去使用别人说的框架等技术就可以解决问题.如果刨除redis、rabbitmq、 阅读全文
posted @ 2020-01-05 18:03 Yrion 阅读(860) 评论(0) 推荐(5) 编辑