springboot + mybatis plus + mysql 树形结构查询
背景实际开发过程中经常需要查询节点树,根据指定节点获取子节点列表,以下记录了获取节点树的操作,以备不时之需。使用场景可以用于系统部门组织机构、商品分类、城市关系等带有层级关系的数据结构;设计思路递归模型即根节点、枝干节点、叶子节点,数据模型如下: id code name parent_code 1
关于Java泛型,你了解多少?
什么是泛型泛型就是参数化类型,也就是把所操作的类型看做为一个参数。为什么需要泛型 在有泛型之前,我们可以创建一个存储Object类型的集合,该集合可以存储任何数据类型对象(8种基本类型除外),在没有泛型的支持下,我们需要明确集合中存储的每一个元素的数据类型,否则,在程序中很容易出现ClassCastException类转换异常。 有了泛型之后,我们在创建一个集合的时
【redis前传】zset如何解决内部链表查找效率低下|跳表构建
前言zset作为有序集合,内部基于跳表或者说索引的方式实现了数据的快速查找。解决了链表查询效率低下的痛点本章节我们将视角下推,继续学习Redis五大天王中的zset数据结构 ; zset是有序不重复集合其内部元素唯一且是有序的,他的排序标准是根据其内部score维度进行排序的。zset结构基本单元 关于zset结构很简单,一个是我们之前学习的字典结构(简单理解成Hash结构),另外
非211/985毕业的Java开发,该如何进入阿里、字节跳动等一线大厂?需要做哪些准备?
一、序言 最早将入职阿里立为目标是在看了网上的校园宣讲会的时候,那时我就关注到了阿里巴巴。我关注的点是这个公司无论是从愿景、理念、还是薪酬福利,都是我们年轻人心目中渴望的充满活力的样子。但是出身双非院校的我,心中还是没有什么信心。虽然网上各个渠道投了阿里不少简历,但是一直石沉大海,不过当时刚好
Spring源码分析——启动流程
目标追踪下面一段代码的流程:AnnotationConfigApplicationContextDemo/** * @description * @date 2021-06-30 11:21 **/ public class AnnotationConfigApplicationCo
flask+nginx+gunicorn+supervisor的框架体系构建一个服务
查看端口号是不是被占用netstat -anp | grep 8080查看应用的进程ps aux|grep nginxflask部分首先flask写服务的部分略去(和业务相关)gunicorn部分首先我们的flask项目的启动方式是:app.run(host="0.0.0.0",use_reloader=T
zookeeper的应用场景
zookeeper是一个高可用的分布式数据管理与协调框架,基于对ZAB算法的实现,该框架能够很好地保证分布式环境中数据的一致性。1、数据发布订阅数据发布/订阅系统,即配置中心。发布者将数据发布到zk上,功订阅者进行数据订阅,进而达到动态获取数据的目的,实现配置信息的集中式管理和数据的动态更新。发布/订阅系统一般有两种设计模式:推push和拉pull。zk采用推拉结合的方式:客户端向服务
高频面试题:再谈Synchronized实现原理!
前言线程安全是并发编程中的重要关注点。造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再进行。在 Java 中,关键字 Synchronized可以保证在同一个时刻,只有一个线程
建议收藏!阿里出身大佬总结的 98%通过率 面试攻略!手把手教你拿下各大厂offer!
这是一位从阿里出来的大佬总结提供的面试攻略。他之前在两个月内一共面试了 五十多场,最终拿了包括美团、滴滴、B站、百度、字节、小米、同程、在内的 8 个大厂 Offer。群内知道后,很多朋友都求他分享经验,于是他就干脆就找上我一起写了一篇博客,进行了比较系统的总结——纯干货,强烈建议收藏起来慢慢看。主要板块包括: 一、确定目标 二、简历优化 三、面试渠道 
各位学弟学妹:作为一名Java开发程序员,除开编程语言本身外,你还必须知道这五点
有很多大学生都表示在学校里很迷茫,完全没法静下心来做事,现在已经大三了,突然发现自己身边有不少同龄人都在考研、或者已经进入大厂实习,甚至还有人准备创业自己当老板了,已经有房有车,月入过万,经济完全独立。相比较之下就觉得自己一无所成,知道自己要去努力奋斗,但是很茫然,不知道要怎么去系统性的学习。于是在这里,我对还在大学里的准程序员们提出一些关于学习的建议。一、心态要端正听到很多人都在说:
『深入学习 Spring Boot』——配置 Spring Bean 的 N 种姿势
配置 Bean 的 N 种姿势最原始的当然是 Xml 配置的方式了,但是因为本系列核心在于 Spring Boot ,所以 Spring 时代 Xml 的配置方式就不过多介绍了。注解 @Component这是我们最常用的方式了。用在类上,将此类注入到 Spring Ioc 容器中。这里的 @Component 指得是所有包含 @Component 的注解,例如 @Controller
LeetCode 二叉搜索树与双向链表/特定深度节点链表
二叉树展开为链表题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成
大佬回避!一名老程序猿送给学弟学妹的话:关于恋爱、关兼职和实习、关于工作和职场
大学应当是人生中最快乐的时光。在这些日子里,你可以做很多事情,有些事情甚至会影响你的一生……本文是我作为一个过来人的一些思考。提笔缘故可能是上了年纪的缘故,一旦有学弟学妹和我聊起大学或者工作是,我都会无数鸡汤犹如水坝开闸搬倾泻而出。前段时间,又有一个学弟问了我一些问题,主要是说谈了女朋友,想要赚些外快。 作为一个过来人,不免多啰嗦几句,把我能想到的一些观点告诉他,希望对他能
当Java枚举遇到位掩码,还能这么玩?
前言相信大家都用过 Fastjson,阿里的一个开源 JSON 库,在阿里系的开源项目里应用的非常广泛。虽然有时候也被戏称“沉的快”,但 Fastjson 从功能丰富度、易用性、源码设计角度来看,都是一款十分优秀的工具库。在使用 Fastjson 时,经常会配置一些枚举参数,比如日期格式、格式化输出、NULL值格式啊等等,就像下面这样配置:String jsonStr&nbs
详解SQL中的表值参数
一、什么是 TVP?表值参数 Table-Value Parameter (TVP) 提供一种将客户端应用程序中的多行数据封送到 SQL Server 的简单方式,而不需要多次往返或特珠服务器端逻辑来处理数据。 您可以使用表值参数来包装客户端应用程序中的数据行,并使用单个参数化命令将数据发送到服务器。 传入的数据行存储在一个表变量中,然后您可以通过使用 Transa
Java多线程实战——Exchanger原理介绍及使用场景
前言今天我们讲一下java.util.concurrent工具类里的下一个工具Exchanger,Exchanger是Java提供的用于线程间进行通信、数据交换的多线程交互工具;Exchanger介绍:Exchanger 是 JDK 1.5 开始提供的一个用于两个工作线程之间交换数据的封装工具类,简单说就是一个线程在完成一定的事务后想与另一个线程交换数据,则第一个先拿出数据的线程会一直
Java开发十年,失业第21天,我得到了什么?到底该怎么做?
搁在从前我还会感慨一句“时间过得真快”,但是随着我失业到今天已经第21天了,现在我对时间的流逝已经习以为常。 从小就清楚一个道理:浪费别人的时间等于“谋财害命”,浪费自己的时间等于“慢性自杀”。为了使自己时间的流失的有意义,进行了一下简单的总结:Java开发十年,我得到了什么?到底该做什么? 忆往昔峥嵘岁月我在计算机本科毕业后就进入了腾讯的QQ部门。 很荣幸接触到了当时顶尖