- 博客(20)
- 收藏
- 关注
原创 Java ThreadLocal源码学习
ThreadLocal源码学习前言设计思路核心代码后记前言定义:ThreadLocal是线程本地变量访问对象。(注: 线程本地变量与当前线程绑定到一起的变量,在其他线程中无法访问。)作用:Java中执行任何方法都是在线程中执行的,由执行方法的线程来提供方法执行的上下文,那么我们如何在这个上下文中添加一些变量呢?答案就是使用ThreadLocal。ThreadLocal的应用场景: Trace...
2020-03-01 21:03:48 395
原创 RoaringBitmap位图
RoaringBitmap位图前言Bitmap 常用场景Bitmap缺陷RoaringBitmap主要思想Roaring 数据结构后记前言Bitmap目前是一种比较常见的计数统计模型,Bitmap的数据结构是二进制类型的按位统计,每一位都有两种状态(0,1)。举个例子:比如我们要使用Bitmap记录当前系统的在线人数,假设我们系统有1000个用户(包含在线和不在线的用户),那么我们设定状态...
2020-02-16 18:13:45 1156
原创 平衡查找二叉树(AVL树)的讲解与实现(JAVA版本)
平衡查找二叉树的讲解与实现前言原理二叉查找树平衡查找二叉树(AVL树)实现AVLTreeDemo后记AVL树的不足前言如果让我们在一堆带有标识的数据中,去高效查询一个特定标识的数据,我们有几种方法?通常我们都会知道二分查找法,二分查找法确实是一种比较高效的查找算法,但是也有弊端就是使用二分查找的数据必须要先经过排序而且针对链表,树这种数据结构并不能像数组一样根据坐标去直接访问。原理二叉查找...
2019-03-17 19:20:01 893 2
原创 JAVA数组二分查找
JAVA数组二分查找前言查找原理代码实现前言二分查找是一种比较高效的查找方式,使用此查找方式需要先将数组进行排序,如果数组未经排序效率就会很低,所以数组是必须要经过排序的。查找原理Created with Raphaël 2.2.0排序后数组计算数组中间值判断数组中间值是否等于我们要查找的元素是我们查找的元素返回当前middle下标结束判断当前中间下标是否已经为0返回-1代表未找到此元素判...
2019-02-27 22:16:01 783
原创 JAVA volatile修饰符的作用
volatile修饰符的作用前言线程可见性简绍JAVA线程模型案例指令重排简绍案例前言volatile在多线程开发中是可以经常看到的变量修饰符,本文主要是比较浅显的介绍volatile的作用。线程可见性简绍JAVA线程模型案例指令重排简绍案例参考:https://www.cnblogs.com/dolphin0520/p/3920373.html...
2019-02-22 00:37:32 1341
原创 JDK1.8 HashMap 学习笔记
JDK1.8 HashMap 学习笔记前言HashMap实现原理HashMap内部结构整体结构每个Hash槽中元素结构HashMap属性说明HashMap方法说明HashMap存储流程HashMap扩容流程写在最后前言 本文主要根据jdk1.8的HashMap实现做的一次学习笔记,jdk1.7的HashMap与jdk1.8的实现有一些不同,但大体原理也是一致的。Ha...
2019-02-17 01:11:07 558
原创 CenterOS 7.4 离线安装Docker 18.03.1
CenterOS 7.4 离线安装Docker 18.03.1准备Docker所需要的RPM包执行安装第一步 权限第二步 安装第三步 服务设置准备Docker所需要的RPM包libsepol-2.5-10.el7.x86_64.rpmlibsepol-devel-2.5-10.el7.x86_64.rpmlibselinux-devel-2.5-14.1.el7.x86_64.rpml...
2019-02-12 22:07:59 1832 1
原创 计数排序和基数排序
计数排序计数排序是一种非比较性排序,时间复杂度为O(n + k),主要适用于排序的数组极大值和极小值直接的差不大的情况,如果待排序数组极值差过大,则会造成过多的空间浪费,具体原理如图所示: 原理 实现 public void countSort(int[] arr) { int min = arr[0], max = arr[0];//获得数组的极...
2018-11-14 15:18:54 343
原创 SpringBoot RestTemplate打印http请求响应
前言SpringBoot 的 RestTemplate是一个比较方便的http请求框架,在调试的时候我们需要查看http的request和response信息RestTemplate不会主动帮我们打印出来,但是我们可以在RestTemplate的拦截器中新增一个我们的log拦截器即可打印Http的必要信息。代码实现如下: private static final Logger ...
2018-11-02 22:38:55 10886 2
原创 归并排序,堆排序,快速排序的讲解与实现
前言本文主要讲的是归并排序,堆排序和快速排序的原理与实现。当然我的实现不一定不是最好的,如果有更好的实现大家也可以在评论区贴出更好的实现代码。时间复杂度的计算:时间复杂度大概的意思是以每一条执行的语句为单位,一个排序算法在随着数据的增大时间上会以什么形式去增长(这里一个算法可能根据数据情况的不同会有多个时间复杂度比如我排序的数据是1,2,3,4,5和1,3,2,5,4 使用快速排序的话就会...
2018-09-26 14:44:17 2735
原创 Swagger2 关于Map参数在API文档中展示详细参数以及参数说明
前言本文主要解决的问题是 Swagger2 (SpringFox)关于Map参数生成的API文档中没有详细Json结构说明,问题如下图所示:此种方式生成的Api文档中的请求参数如下:如果是这样的参数类型的会让查看API的人员无法清晰的知道如何请求API文档。当然Swagger2 根据这种情况也给出了解决方案: @ApiOperation(value = "not...
2018-08-30 22:15:09 129838 50
原创 Android java.lang.SecurityException: Failed to find provider异常说明
java.lang.SecurityException: Failed to find provider null for user 0; expected to find a valid ContentProvider for this authority产生上述异常的原因可能为:在Android 8.0 设备以上的时候, 没有提供相对应authority key的ContentProvid...
2018-08-08 17:47:41 13995 2
原创 Android自定义View链接系统输入法(自定义验证码组件)
前言有些需求需要我们自定义View,这个View需要有接收系统键盘输入数据的能力,相信有些同学都是使用onKeyDown的监听方法实现的,但发现有些输入法获取不到数据。其实这个原因是onKeyDown方法主要是监听物理按键的响应,对于虚拟键盘有时是不生效的具体结果取决于各个输入法的实现。那么我们应该如何获取虚拟键盘的输入数据呢?其实大家仔细观察Api 可以发现有两个方法,onCheckIsTe...
2018-08-08 15:44:57 925
原创 Android 自定义密码键盘组件,支持多点触控
前言现在对于前端APP的安全要求越来越高,所以很多APP都开发了自己的数字键盘,这么做对于安全性的提升个人总结有如下几点:防止第三方键盘出现BUG,泄露用户支付密码。 自定义键盘可以根据自己的算法提高加密等级,比如的密码是123456,但是我可以在内存中存储为xxxxxx。 Android 系统黑客只能获取点击屏幕位置,并不能直接获得该按钮的具体值。 可以自定义按键的点击效果,防止录...
2018-07-31 21:29:52 1323 2
原创 Centos7.2 SSH免密登录设置
一、免密登录设置1.编辑 sudo /etc/ssh/sshd_configAuthorizedKeysFile xxx //公钥文件路径 一般是当前用户目录下.ssh/authorized_keys文件PubkeyAuthentication yes //开启免密认证systemctl restart sshd //重启ssh服务2.生成公钥ssh-key...
2018-06-11 21:51:46 2994 3
原创 基于Linux下开发的ELK自动部署工具以及ELK基本操作
基于Linux下开发的ELK自动部署工具以及ELK基本操作前言:本文主要作为此次部署ELK环境的记录,希望我的一些经验可以帮到更多的人1.介绍自定义开发了一款基于linux和docker(各个节点之间需要可以互相ping通,可以配置linux之间的网关即可互通)快速分布式部署ELK环境的工具(该工具的百度网盘地址:https://pan.baidu.com/s/1gfNEcyJ 密码
2017-12-17 22:18:03 1352
原创 使用telnet发送email(内嵌图片,附件)
使用telnet发送email(内嵌图片,附件)因为最近想复习一下smtp协议所以无聊的本人想使用telnet发送email,虽然比较简单但还是记录下来希望可以给一些需要的朋友帮助吧。准备: 首先本人实在windows系统上进行的test,目前大多数windows系统不会开启telnet功能, 如果还未开启telnet功能请先在”控制面板”-“程序和功能”-“打开或关闭windows功能”中将t
2016-11-09 09:53:14 933188 2
原创 java验证码实现
自己实现的java简单验证码,主要使用的是java graphics经行的绘画,本验证码添加了划线,扭曲,噪点等特性,有需要的朋友拿去用就是了,也可以作为参考package validateCode;import java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import java.awt
2016-06-04 10:33:53 2699
原创 基于html5的文件上传案例
html5的formData对象可以向正常的form表单一样通过ajax请求发送,包括上传文件并且可以一次性上传多个文件。并且可以根据监听事件,监视上传进度,终止,结束等等。下面的实例代码使用到了bootstrap,跑的话先搭建好bootstrap环境。并且要支持html5的浏览器。jsp页面代码
2016-06-04 10:20:42 4576
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人