自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Java8 ThreadPoolExecutor 源码详解

Java8 ThreadPoolExecutor 源码详解1 简介1.1 什么是线程池​ 线程池思想:在系统中开辟一块区域,存放一定数量的线程,当接收到要处理的任务时,从池中取一个空闲的线程进行处理,执行完任务归还线程,线程池避免重复创建大量不必要线程,避免浪费cpu和系统资源1.2 使用简介​ ThreadPoolExecutor 主要通过 execute 和 submit方法提交要执行的任务到线程池,线程池会创建/取出空闲线程执行要处理的任务, execute 方法接收一个Runnable类型

2020-05-16 15:09:43 260 1

原创 二进制位处理技巧小记

二进制最低位1问题:有一个数字x, 想要把除最低1位的其他位全部置0,怎么操作? 假如n是结果,直接上公式答案:n = (x & -x)解答:负数的二进制为正数取反码+1例1例如 x二进制: 0000000000000000 0000000000111100那么 -x二进制:1111111111111111 1111111111000100那么 n二进制: 0000000000000000 0000000000000100 例2例如 x二进制: 0000000000000000

2021-07-02 09:50:09 314

原创 Spring AOP原理详解

前些日子把Spring AOP的源码撸了几遍,但是回过头总发现会忘记,因此以这篇文章记录一下,当作是总结和复习!1 什么是AOP​ AOP(Aspect Oriented Programming), 中文翻译过来就是面向切面编程,AOP可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善,OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力,也就是说,OOP允许你定

2021-06-27 19:05:15 312

原创 Kafka四(生产者API)

首先需要引入Kafka客户端依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.4.0</version> </dependency>步骤定义生产者属性创建生产者对象发送消息package com

2021-04-28 15:49:25 163

原创 面试官问我Java创建线程的方式和线程池参数?我笑了

Java 创建线程有四种方式继承Thread类,重写start方法实现Runnable接口,重写run方法,并使用Thread类启动实现Callable接口,重写call方法,并使用Thread类启动运用线程池1 继承Thread类package com.mingweicai.thread.newthread;class MyThread extends Thread{ @Override public void run() { System.out.pr

2021-03-24 22:28:02 242 2

原创 HashMap原理详解

Map是用于存储键值对(<key,value>)的集合类,也可以说是一组键值对,在Java 1.8以上,HashMap的数据结果如下HashMap的内部数据结构是由数组,链表,红黑树组成的。下文结合put方法的流程图解先简单分析HashMap的流程,之后再进行详细介绍。1 put方法图解(总体流程认知)1.1 在通过new HashMap<Integer,Integer>()新建一个对象时,HashMap此时的数据结构如下图1-11.2 新建完对象后,调用put(1,1

2021-03-22 11:10:34 259

原创 kafka三(基本命令)

文章记录一些常用基本命令和参数,更多参数请使用–help进行查阅或者查阅官方文档1 主题管理1.1 创建主题kafka-topics.sh --create --bootstrap-server 172.18.187.15:9092 --replication-factor 2 --partitions 3 --topic kafka-action控制台输出结果如下Created topic kafka-action.bootstrap-server:kafka服务器的地址列表partit

2021-03-21 15:38:45 532

原创 InnoDB 和 MyISAM 对比

InnoDB支持事务, InnoDB实现了四个标准的隔离级别,默认级别是REPEATABLE READ(可重复读)支持行锁和表锁表基于聚簇索引创建.frm文件存储表结构, .ibd文件存储索引和数据支持外键不保存表的具体行数,当没有合适的索引时,select count(*) 需要扫描整个表通过MVCC支持高并发MyISAM不支持事务只支持表锁,不支持行锁,一个更新语句会锁住整张表,会导致其他查询和更新阻塞,效率低崩溃后无法安全恢复.frm文件存储表结构, .MYD存储数据文件

2021-03-18 21:44:25 114

原创 Kafka二(集群搭建)

本篇文章介绍Kafka集群的搭建,主要包括JDK环境配置、Zookeeper集群搭建、Kafka集群搭建这三个步骤,我相信绝大部分人都对JDK环境搭建已经非常熟悉了,所以本章不再啰嗦。1 Zookeeper简介ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group serv

2021-03-18 21:42:09 127

原创 Kafka一(基本概念)

Kafka 简介Kafka是一款开源的、轻量级的 、分布式、可分区和具有复制备份的、基于ZooKeeper协调管理的、功能强大的消息系统,kafka官网把它定为成一个分布式流平台,并且认为作为一个流平台,需要具备以下三种特性。能够允许发布和订阅流数据存储流数据时提供相应的容错机制当流数据到达时能够被及时处理Kafka基本概念图1-1是Kafka的基本体系结构,本节将详细阐述Kafka的基本概念。图1-1A、B代表主题,即主题A、主题B分区0、分区1代表有多少分区,如主题A有分区0、分

2021-03-14 21:13:44 196 2

原创 Mysql InnoDB锁

锁是数据库区别于文件系统的一个关键特性,锁用于管理共享资源的并发访问,加锁是消耗资源的,锁的各种操作,包括获得锁、检测锁是否是否已解除、释放锁等。Mysql中每个存储引擎因此对锁的支持都不太一致,这里只专注于InnoDB存储引擎中的锁,在InnoDB中支持的锁是比较多样的从粒度上,InnoDB 支持行锁和表锁行锁:锁定某一行表锁:锁定整个表只有通过索引条件检索数据,InnoDB 才使用行级锁,否则,InnoDB 将使用表锁!另外, InnoDB 实现了以下两种行锁共享锁(S),允许事务读

2020-11-08 15:21:30 176

原创 redis 事务

1 概念和使用熟悉关系型数据库的读者应该对事务比较了解,简单说,事务表示一组动作或者命令,要么全部执行完成,要么全部不执行。例如在社交网站上用户A关注了用户B,那么需要在用户A的关注表中加入用户B,并且在用户B的粉丝表中 添加用户A,这两个行为要么全部执行,要么全部不执行,否则会出现数据不一致的情况。Redis提供了简单的事务功能,将一组需要执行的命令放在multi和exec两个命令之间。multi代表事务开始,exec代表事务结束,他们之间的命令是原子性执行的127.0.0.1:6379> m

2020-10-14 22:06:56 85

原创 redis pipeline

1 Pipeline概念Redis客户端执行一条命令的流程如下发送命令命令排队命令执行返回结果其中步骤1+步骤4所使用的时间称为往返时间(Round trip time) RTTRedis提供了部分批量操作的命令,例如mget、mset,但是还有很多操作是不能批量进行的,例如要执行n次hgetall 或者n次del操作,那么需要消耗n次RTT。在比较极端的条件下,例如机房比较远,那么1s能执行的客户端命令是极其有限的,这和Redis的高并发高吞吐量背道而驰Pipeline就能改善此类问题

2020-10-13 21:46:17 115

原创 redis慢查询

所谓的慢查询日志,是指系统在命令执行前后,记录命令执行时间,当超过某个预设阈值,就将这条命令的相关信息记录下来(例如发生时间、耗时、命令详细信息),Redis执行一条命令的流程如下发送命令命令排队执行命令返回结果慢查询只计算步骤三的时间,所以没有慢查询并不代表客户端没有超时问题1 两个配置参数slowlog-log-slower-than 慢查询阈值,单位微妙slowlog-max-len 慢查询日志条数当命令的执行时间超过slowlog-log-slower-than的配置之后,

2020-10-13 20:48:41 251

原创 Redis cluster 小结

1 数据分布1.1 数据分布理论分布式数据库首先要解决把整个数据集按照分区规则映射到多个节点的问题,即把数据集划分到多个节点上,每个节点负责整体数据的一个子集常见的分区规则有哈希分区和顺序分区两种,区别如下分区方式特点代表产品哈希分区离散度好 数据分布和业务无关 无法顺序访问Redis Cluster Cassandra Dynamo顺序分区离散度容易倾斜 数据分布和业务有关 可顺序访问Bigtable HBaseHypertable这里重点介绍哈希分区

2020-10-11 22:03:53 228

原创 Spring 事务传播机制,失效场景等小结

Spring事务小结Spring事务传播机制Spring事务失效场景Spring 事务四大特性事务隔离级别产生的问题Spring 手动开启事务Spring事务传播机制Spring 七种传播机制REQUIRED(TransactionDefinition.PROPAGATION_REQUIRED)支持当前事务,如果有事务加入当前事务,没有则会创建一个新的事务SUPPORTS(TransactionDefinition.PROPAGATION_SUPPORTS)支持当前事务,如

2020-09-16 18:02:57 906 2

原创 Java静态代理和动态代理

1 代理模式代理模式为另外一个对象提供一个替身或占位符以控制对这个对象的访问举个例子来说明代理的作用: 一般我们想邀请明星来当我们的代言人,我们并不能直接联系到明星,而是通过其经纪人,来告诉经纪人我们需要和明星进行合作,然后通过经纪人来转达给明星。明星只需要做好代言工作就好,其他繁琐的事情就交于经纪人就可以。这里的经经纪人就是一个代理对象,明星就是一个目标对象代理分为静态代理和动态代理2 静态代理来看一个静态代理的例子假设现在有一个商家想找一个明星拍一则广告,这个商家找到明星的经纪人就广告费合同

2020-06-15 22:16:28 164

转载 Java中的各种锁详细介绍

转自:https://blog.csdn.net/axiaoboge/article/details/84335452Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:&...

2020-06-03 16:23:31 947

原创 Java 普通变量,静态变量,普通代码块,静态代码块,构造方法的执行顺序

Java 普通变量,静态变量,普通代码块,静态代码块,构造方法的执行顺序1:执行父类静态变量赋值/代码块,按变量/代码块定义的顺序执行2:执行子类静态变量赋值/代码块,按变量/代码块定义的顺序执行3:执行父类普通变量赋值/代码块,按变量/代码块定义的顺序执行4:执行父类构造函数5:执行字类普通变量赋值/代码块,按变量/代码块定义的顺序执行6:执行子类构造函数public class SuperClass { public static Integer k1 = 1; static

2020-05-30 16:09:03 461

原创 Java8 ConcurrentHashMap 原理详解

Java8 ConcurrentHashMap 原理详解目录Java8 ConcurrentHashMap 原理详解1:简介1.1 ConcurrentHashMap 结构1.2 约定1.3 重要成员变量简介2 put 方法2.1 put方法简要流程2.2 put 方法源码2.3 总结点数如何记录3 扩容4 get 方法5 delete方法1:简介1.1 ConcurrentHashMap 结构​ JDK 1.8 的 HashMap 的数据结构如上图所示,当链表节点较少时仍然是以链表存在,当链表节

2020-05-29 16:18:39 2320

原创 NIO 原理链接

https://www.cnblogs.com/crazymakercircle/p/10225159.html

2020-05-27 10:06:22 142

空空如也

空空如也

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

TA关注的人

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