摘要:
nginx是一款轻量级web服务器,主要有负载均衡和反向代理的特性。 安装准备 nginx一些模块需要依赖lib库,所以先安装lib库,执行以下命令: [root@localhost local]# yum -y install gcc-c++ pcre pcre-devel zlib zlib-d 阅读全文
摘要:
RabbitMQ主要有六种工作模式,本文整合SpringBoot分别介绍工作模式的实现。 前提概念 生产者 消息生产者或者发送者,使用P表示: 队列 消息从生产端发送到消费端,一定要通过队列转发,使用queue_name表示: 消费者 消费的消费者或者接收者,使用C表示,如果有多个消费者也可以用C1 阅读全文
摘要:
前段时间,领导分配一个统计销售区域汇总的数据,解决方案使用到了反射获取注解,通过注解获取属性或者设置字段属性。 问题描述 查询公司列表,分别是公司id、区域id、区域名称: | 公司id | 区域id | 区域名称 | | : :| : : | : : | | 1 | 1 | 华南 | | 2 | 阅读全文
摘要:
前言 后端业务开发,每个表都要用到单表的增删改查等通用方法,而配置了通用Mapper可以极大的方便使用Mybatis单表的增删改查操作。 通用mapper配置 1、添加maven: <dependency> <groupId>org.springframework.boot</groupId> <a 阅读全文
摘要:
最近看HashMap的源码,其中相同下标容易产生hash冲突,但是调试需要发生hash冲突,本文模拟hash冲突。 hash冲突原理 HashMap冲突是key首先调用hash()方法: static final int hash(Object key) { int h; return (key = 阅读全文
摘要:
上文详解HashMap源码解析(上)介绍了HashMap整体介绍了一下数据结构,主要属性字段,获取数组的索引下标,以及几个构造方法。本文重点讲解元素的添加、查找、扩容等主要方法。 添加元素 put(K key, V value) public V put(K key, V value) { retu 阅读全文
摘要:
jdk版本:1.8 数据结构: HashMap的底层主要基于数组+链表/红黑树实现,数组优点就是查询块,HashMap通过计算hash码获取到数组的下标来查询数据。同样也可以通过hash码得到数组下标,存放数据。 哈希表为了解决冲突,HashMap采用了链表法,添加的数据存放在链表中,如果发送冲突, 阅读全文
摘要:
在平时Java,存储数据需要用到列表,而大多时候都能用到ArrayList,比如Mybatis查询数据列表,返回列表都是ArrayList,很多数据的存放也用到了ArrayList。 jdk 版本: 1.8 ArrayList 是基于大小可变的数组实现,并允许添加null值, 根据下标就能数据查询快 阅读全文
摘要:
最近工作需要做一个评论功能,除了展示评论之外,还需要展示评论回复,评论的回复的回复,这里就用到了递归实现评论的多级回复。 评论实体 数据库存储字段: id 评论id、parent_id 回复评论id、message 消息。其中如果评论不是回复评论,parent_id 为-1。 创建一个评论实体 Co 阅读全文
摘要:
LinkedList 底层基于链表实现,增删不需要移动数据,所以效率很高。但是查询和修改数据的效率低,不能像数组那样根据下标快速的定位到数据,需要一个一个遍历数据。 基本结构 LinkedList 是基于链表实现的结构,主要核心是 Node 节点,源码如下: private static class 阅读全文