自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

代码小司机

欢迎交流,指正

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

原创 以ReentrantLock为例,分析Java并发编程中公平锁和非公平锁的实现;

概念解释:公平锁,指的是在进行锁的竞争中,没有获得锁的线程,当锁被释放时,会按照先后顺序依次进行锁的获取,先到先得,体现公平性;非公平锁,指的是锁释放后,竞争锁的线程不会按照先后顺序来获取被释放的锁,结果具有随机性,故不体现公平性;实例分析: 以ReentrantLock 为例,分别实现公平锁及非公平锁案例;/*** * 公平锁实现: * ReentrantLock 构造方法中可以设置为true,代表公平锁,false,代表非公平锁; * * 实例逻辑: * 主线程占用锁..

2020-05-20 10:14:06 552

原创 Scala 中如何提取正则表达式的部分匹配内容

正则表达式:用于匹配字符串是否满足某种特定的格式,在编程语言中有着广泛应用。常规使用场景为验证字符串的格式是否正确,但是也存在需要通过正则表达式提取字符串中某些特定内容的场景;实例分析1:存在某字符串 "Need extract line:Number:2345,String:abcde",编写正则表达式分别提取出Number 和 String 对应的值;代码实现: def main(args: Array[String]): Unit ={ val line = "N...

2020-05-11 12:48:38 3027

原创 数据结构之树的逻辑结构简介及存储结构的简单Java实现

树结构:由N个结点组成的有限集,在各个结点间具备树状的逻辑结构关系; 当N=0时,该树是空树; 当N>0时,该树是非空树,而树中有且只有一个根节点,其余结点组成M个有限集亦是树结构,称为根的子树;树结构名词解释:(参考如下的示例树状逻辑结构图)根结点:树状逻辑结构中唯一的,没有双亲结点的结点;内部结点:树状逻...

2019-12-18 13:17:16 2403

原创 字符串匹配算法 —— KMP 优化匹配算法的实现

预读博客:字符串匹配算法 —— 朴素(暴力)匹配算法的实现前言:预读博客中展示了朴素的字符串匹配算法,也是最容易实现的匹配算法,但是上述的算法中存在着性能问题,比如存在原始字符串 SSSSSSSSSSSX 和匹配字符串 SSSX,则在使用上述朴素算法时,就会发现每次都是到最后一个才发现匹配失败,而每次只移动一位原始字符串位置再重新遍历匹配,算法在这种情况下效率较低,实际的计算次数是可以...

2019-12-11 14:07:03 397

原创 字符串匹配算法 —— 朴素(暴力)匹配算法的实现

字符串匹配问题:假设存在原始的字符串 abcabdfhfd之后使用 R 表示,现提供另一个匹配字符串 abdf之后使用 M 表示,请计算得出 M 字符串在 R 字符串中的位置;问题分析: 按照常规的思维,要计算两个字符串的匹配关系,需要使用较短的匹配字符串逐项对比原始字符串,如果发现有字符串不匹配则回到初始位置的后一位进行再次出现匹配,直到找到为止,如下所示。使用这种方式得出的算法...

2019-12-03 14:47:57 928

原创 经典斐波那契数列学习 -- 兔子繁衍问题的代码实现

经典兔子问题: 假设一对大兔子每个月可以生产一对小兔子,每对新生的小兔子经过两个月既可以长成一对大兔子, 且具备繁殖能力,如果不考虑发生死亡的情况,且每次均生下一雌一雄,请问 N 年后共有多少对兔子?问题分析:通过图示的方式寻找兔子数量的变化规律,获得斐波那契数列:1, 1, 2, 3, 5, 8 .... 实际规律:根据如上获取的数列可以表...

2019-12-02 16:07:25 2399

原创 Kibana 页面请求超时以及Unknown Error的问题解决

背景介绍: 公司使用Kibana对ES集群的索引数据进行可视化的业务分析,在使用的过程中,随着ES索引量的不断扩大,在Kibana页面进行可视化查询或聚合查询等操作时,耗时不断增加而引发出一系列的页面请求超时及未知异常的问题,故全面记录问题解决方式,避免再次踩坑!本博客中使用的ES及Kibana版本皆为7.2.0,实际操作索引的文档数量超过6亿并不断增加,在kibana页面进行可视化操作时随...

2019-11-22 14:37:15 7537

原创 Filebeats 合并多行数据实例及各项参数详解

背景介绍: Filebeats 作为轻量级的日志采集软件,可以让我们对分布式项目的日志进行收集,并将结果直接发送到ES进行索引。默认情况下,Filebeats收集每一行数据代表一个event,但在实际的使用过程中,经常会遇到多行合并的情况,例如收集tomcat的完整异常日志信息,本博客主要通过例子的方式阐述Filebeats多行数据合并的各个详细参数的作用(官网例子不太好理解)。如果想了解Fi...

2019-11-05 16:55:11 751

原创 D3 绘制带线箭头以及单边切角矩形

背景介绍: 因公司历史数据展示相关业务所需,使用d3.js 绘制系列整体图示过程中,带线箭头和单边切角矩形两个图形对于小白来说,查找资料并实践耗时较多。故记录具体的实现方式,以防之后踩坑。实现图示: 详细步骤: #带线箭头绘制: ① 实现思路: 带线箭头由直线和箭头...

2019-10-22 10:14:50 1387 1

原创 子元素触发父元素的鼠标事件及上层元素遮挡下层元素的鼠标事件

背景介绍:使用 D3 绘制业务所需的展示图, 其中一个功能是实现在长方形框中添加文本内容(如图1所示),并且设置鼠标事件,当移入长方形区域时,显示一个弹出框展示详细内容(如图2所示),移出后隐藏弹出框。问题描述:鼠标移入到长方形空白区域,事件正常执行,而当鼠标移动到text上则事件无法触发。 ...

2019-10-18 10:46:48 1142

原创 JStree 绘制文件树(2)—— 异步加载父节点数据,点击后添加子节点,并展开或合并

上一篇博客中演示了JsTree的基本使用,使用的是本地不可变数据进行Demo绘制。博客地址:https://blog.csdn.net/hewenbo111/article/details/90182394在实际使用中,后台数据经常需要异步获取,所以本次介绍在实际绘制文件树过程中使用的异步加载数据的方式。绘制目标: ①:异步加载初始化 Jstree 的数据;...

2019-05-17 14:59:20 2074

原创 JStree 绘制文件树(1)—— JsTree使用Demo以及自定义图标更换

项目中需要向用户展示存储在云上的文件的目录结构,以便于用户选择下载使用,故使用JSTree进行数据的异步加载和绘制。最终的效果简图如下所示: 因初次使用JSTree进行异步数据加载和文件树图绘制,故记录该框架使用情况。本次记录根据小块的功能划分多篇博客进行, 以便迅速定位到某些小的细节。JSTree github 地址:https://github.c...

2019-05-17 10:13:05 2484 2

原创 TransmittableThreadLocal 解决线程本地变量在线程池之间的传递问题

上一个博客中提到的 InheritableThreadLocal在线程池的应用中会产生问题.博客地址:https://blog.csdn.net/hewenbo111/article/details/80487252因为线程池中的线程是会被复用的,所以在使用线程池进行多线程编程时,如需操作本地变量则需要特别注意!本次博客会演示使用 TransmittableThreadLocal 解决...

2019-05-13 19:29:34 4509 2

原创 SpringMVC源码解析(1):DispatcherServlet的初始化源码之Bean加载

SpringMVC是当下使用量比较大的web端框架,为了增加自己对SpringMVC的深入理解,故浅度剖析框架源码。如博客中存在任何问题,欢迎您指正。一 ,概述DispatcherServlet是SpringMVC框架的入口,而servlet有其自己的生命周期。初始化对应的方法是init,因此我们从该方法入手进行SpringMVC初始化的源码阅读。二 ,核心类继...

2018-07-26 17:42:17 431

原创 Spring实现多数据源配置的思想和使用方式

实际的项目中,经常会用到不同的数据库以满足项目的实际需求。为了解决在不同的类中注入相同类型的数据库连接对象JdbcTemplate,而在真正使用的时候根据会自己的要求,分别使用不同的数据库连接的问题。就要使用到Spring管理多数据源的一种思想。 --> 比如:项目中将大量插入操作和频繁的查询操作分成两个数据库进行,伪代码如下(直接dao层): ...

2018-06-08 13:19:50 13194

原创 InheritableThreadLocal——父线程传递本地变量到子线程的解决方式及分析

上一个博客提到ThreadLocal变量的基本使用方式,可以看出ThreadLocal是相对于每一个线程自己使用的本地变量,但是在实际的开发中,有这样的一种需求:父线程生成的变量需要传递到子线程中进行使用,那么在使用ThreadLocal似乎就解决不了这个问题,难道这个业务就没办法使用这个本地变量了吗?答案肯定是否定的,ThreadLocal有一个子类InheritableThreadLo...

2018-05-29 13:58:59 50551 10

原创 ThreadLocal 变量的基本使用和拓展解读

Java开发中,多线程是必不可少的要接触的技术。在多线程的环境中,有的时候需要多个线程操作同一个变量,有的时候需要针对每一个线程都使用自己的变量值互不影响。针对每一个线程使用自己私有的本地变量的情况,java为我们提供了一个类库---TheadLocal,帮助我们解决这个问题。项目中实际遇到的问题:因为数据库日益访问的压力增大,所以需要将主要的数据...

2018-05-26 23:43:06 1239

空空如也

空空如也

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

TA关注的人

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