自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

乐乐的博客

分享技术

  • 博客(9)
  • 收藏
  • 关注

转载 HashMap之1.7和1.8的区别

HashMap是我们开发中经常使用到的集合,jdk1.8相对于1.7底层实现发生了一些改变。1.8主要优化减少了Hash冲突 ,提高哈希表的存、取效率。底层数据结构不一样,1.7是数组+链表,1.8则是数组+链表+红黑树结构(当链表长度大于8,转为红黑树)。JDK1.8中resize()方法在表为空时,创建表;在表不为空时,扩容;而JDK1.7中resize()方法负责扩容,inflateTable()负责创建表。1.8中没有区分键为null的情况,而1.7版本中对于键为null的情况调用putFo

2020-12-30 17:10:33 5800

原创 jdk1.7下HashMap的头插法问题

jdk1.7,hashmap才用的是头插法,虽然hashmap并不是线程安全的容器,但是在并发情况下,使用hashmap会带来一个问题:并发情况下,如果插入元素的两个线程都调用了rehash方法,即扩容方法,会导致链表成环的问题。hashmap成环原因的代码出现在transfer代码中,也就是扩容之后的数据迁移部分(如下):/** * Transfers all entries from current table to newTable. */ void transfer

2020-12-30 14:41:34 2799 1

原创 mybatis的一级缓存详解

文章目录1、mybatis一级缓存是什么2、代码示例2.1.结果展示:2.2.现象解析3、有多个SqlSession或者分布式的环境下,数据库写操作会引起脏数据3.1代码如下:3.2结果:4、总结1、mybatis一级缓存是什么使用缓存可以使应用更快的获取数据,避免频繁的数据库交互,尤其是在查询越多、缓存命中率越高的情况下,使用缓存的作用就越明显。MyBatis作为持久化框架,提供了非常强大的查询缓存特性,可以非常方便的配置和定制使用。 一级缓存(也叫本地缓存)默认会启用,并且不能控制,因此很少提

2020-12-28 15:44:58 830

原创 kafka集群搭建和操作详解

1.kafka官网https://kafka.apache.org/2.下载地址wget https://mirror.bit.edu.cn/apache/kafka/2.7.0/kafka_2.12-2.7.0.tgz3.解压并复制三个kafkatar zxvf kafka_2.12-2.7.0.tgzcp -r kafka_2.12-2.7.0 kafka01cp -r kafka_2.12-2.7.0 kafka02cp -r kafka_2.12-2.7.0 kafka034.修

2020-12-27 14:58:46 451

转载 Java中Bitmap的实现

说bitmap之前,我们要明白数字在内存中的表示,如果说byte用8个二进制位表示,即可以表示2^8 = 256个数,每个byte占8位,即每个byte占8行,在内存中这样形象的表示:---------------1 1 1 0 1 1 1 1 ---------------1 0 1 1 1 1 1 1 ---------------0 0 0 0 1 1 1 1 ---------------....而bitmap结构,充分利用了每一行所有的位数,它将每个位置作为一个数,那么一行就可

2020-12-23 14:52:58 5567

原创 队列顺序消费例子

1.orderProducerpackage com.redis.example.demo.rocketmq.provider;import org.apache.rocketmq.client.producer.DefaultMQProducer;import org.apache.rocketmq.client.producer.MessageQueueSelector;import org.apache.rocketmq.client.producer.SendResult;import

2020-12-18 08:34:11 356

原创 jenkins创建工作流

1.新建item2.创建流水线3.保持最大构建数4.git parameter5.凭据参数6. git project url7. docker tag8. 脚本pipeline { agent any environment { HARBOR_HOST="192.168.**.**" HARBOR_USER="Jenkins" HARBOR_PASS="****" BUILD_TARGET="ta

2020-12-16 16:43:49 367 1

转载 【rocketmq系列】第三篇消息过滤机制

本文主要阐述 ClassFilter过滤机制实现。文章目录一、ClassFilter 消息过滤机制 FilterServer详解2.1 ClassFilter模式 消息过滤类注册机制DefaultMQPushConsumerImpl#subscribeMQClientInstance#sendHeartbeatToAllBrokerWithLock重点关注MQClientInstance#uploadFilterClassSource方法继续进入MQClientInstance#uploadFilter

2020-12-10 17:55:05 529

原创 Github PageHelper 原理解析

对数据库的日常操作,都离不开增删改查。如果一次查询的纪录很多,那我们必须采用分页的方式。对于一个Springboot项目,访问和查询MySQL数据库,持久化框架可以使用MyBatis,分页工具可以使用github的 PageHelper。我们来看一下PageHelper的使用方法:@Servicepublic class UserServiceImpl implements UserService { @Resource private UserMapper userMapper;

2020-12-02 10:49:46 1522

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除