自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MrBlackWhite的博客

努力常态化

  • 博客(150)
  • 资源 (4)
  • 收藏
  • 关注

转载 jvm系列知识汇总

jvm系列知识汇总原创:白玉IT哈哈https://mp.weixin.qq.com/s/M2IYpIjo02CvgMptvlUKZw#%23点击可阅读《JVM系列:jvm基本结构》《JVM系列:java中JVM的原理》《JVM系列:解决JVM最大内存设置问题》《JVM系列:JVM参数设置、分析》《JVM系列:JAVA虚拟机体系结构》《JVM系列:类装...

2018-08-09 17:39:29 829

转载 线程池的三种队列区别:SynchronousQueue、LinkedBlockingQueue 和ArrayBlockingQueue

使用方法:1.SynchronousQueueprivate static ExecutorService cachedThreadPool = new ThreadPoolExecutor(4, Runtime.getRuntime().availableProcessors() * 2, 0, TimeUnit.MILLISECONDS, new SynchronousQueue<>(), r -> new Thread(r, "ThreadTest"));Synchro

2021-01-16 16:10:25 644

原创 线程池的四种创建方式及应用场景(注意仅供demo演示,实际推荐手动创建线程池的方式)

关于三种线程池的三种队列区别:SynchronousQueue、LinkedBlockingQueue 和ArrayBlockingQueue,可以点击链接查看。https://blog.csdn.net/qq_26881739/article/details/80983495最近线程池用的比较多,感觉挺有意思。在此记录一下,线程池的创建有4种方式;1 .Executors.newCachedThreadPool();构造方法为:public static ExecutorService ne

2021-01-16 16:07:20 1360

原创 为什么一定要遵从最左前缀原理查询

此图已经是按照联合索引排好序的,在叶子节点中name是一定的前提下,age是排好序的 条件为(name=Bill age= 30)可以找到要查询的条件。假如直接查询name为30的 则需要重新全表扫描也就是说 最左前缀匹配 是因为最左边的字段是排好序的。...

2020-12-22 22:35:06 1492 1

转载 select、poll、epoll之间的区别(搜狗面试)

(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态, 但是它没有最大连接数的限制,原因是它是基于链表来存

2020-11-20 11:35:54 146

转载 消息积压---一般处理方法

如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?思考是什么导致了消息积压?是consumer程序bug?是consumer消费的速度落后于消息生产的速度? 积压了多长时间,积压了多少量? 对业务的影响?解决思路1. 如果仅仅是consumer消费的速度落后于消息生产的速度的话,可以考虑采用扩容消费者群组的方式。2. 如果积压比较严重,积压了上百万、上千万的消息。修复现有consumer的问题,并将其停掉。 重新创建一个容量更大的topic,比如patition

2020-11-18 18:17:53 2677

转载 快速理解聚集索引和非聚集索引

数据库的索引,听起来挺神秘的,仔细想想。这些索引,其实就是平时咱们查东西时候常用的两种手段。无非就是为了提高我们找东西的效率而已。那么我们平时又是怎么查东西呢?聚集索引: 聚集索引,来源于生活尝试。这中索引可以说是按照数据的物理存储进行划分的。对于一堆记录来说,使用聚集索引就是对这堆记录 进行 堆划分。即主要描述的是物理上的存储。举个例子: 比如图书馆新进了一批书。那么这些书需要放到图书馆内。书如何放呢?一般都有一个规则,杂志类的放到101房间,文学类的放到...

2020-11-13 14:21:18 152

转载 数据库索引原理及优化

本文内容主要来源于互联网上主流文章,只是按照个人理解稍作整合,后面附有参考链接。一、摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。二、常见的查询算法及数据结构为什么这里要讲查询算法和

2020-11-13 11:31:49 336

原创 安装部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat+Metricbeat) 基于7.9.3版本

关于docker本地安装参考另外一篇文章 : https://blog.csdn.net/u011665991/article/details/109494752PS:docker部署ELK 一台服务器,filebeat和metricbeat另外一台服务器,存在访问拒绝的问题,此问题暂时没有解决所以采用了 linux安装安装使用的是官网免安装版本,解压既可以使用,所有使用版本均为7.9.3,压缩包来源于官网。es官网PS:如果因为切换到普通用户没有访问文件夹或者文件的权限,使用roo..

2020-11-09 18:58:56 3336

原创 Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat+Metricbeat) 基于7.9.3版本

ELK是由 Elasticsearch、Logstash和Kibana 三部分组件组成。Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash 是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、.

2020-11-05 18:16:01 5066 1

原创 String 字符串 去掉所有空格(包含ascii编码为32和160的空格)

最近遇到个问题,获取excel中单元格字符串时 通过正则 \s*去除字符串中所有空格发现总是有空格debug发现发现其ASCII码值为160,这才知道,原来ASCII码中除了32之外还有160这个特殊的空格。下边是查看字符对应ASCII值的逻辑:final char c1 = ' '; //excel中的空格final char c2 = ' '; //手动输入的空格System.out.println((int)c1); //160System.out.println((int)c2)

2020-10-15 09:50:57 1122

原创 java对excel进行加密保护

针对单个sheet保护 : sheet.protectSheet("ccxcai")针对整个工作簿保护 :workBook.writeProtectWorkbook("password", "username" );PS: 1.上面的保护功能,sheet之前是可以移动的2. 针对单个sheet页里面的 保护工作簿(不同的sheet之间不能移动)的功能没找到...

2020-09-27 14:30:35 1742 3

转载 大小端与高位先行、低位先行

近期学习嵌入式过程中混淆了大小端和高位先行、低位先行的区别,现总结如下。首先解释大端小端模式。大端模式即高位字节存放在低地址中,低位字节存放在高地址中;小端模式相反,高位字节存放在高地址中,低位字节存放在低地址中。用图表示更加容易理解。如下图,我们将数据0x01020304分别按照大端模式和小端模式存放在芯片中。内存地址 0x00000004 0x00000003 0x00000002 0x00000001 大端 0x04 0x03 0x02 0x

2020-08-05 15:29:39 6386

转载 分析CountDownLatch的实现原理

上一篇通过研究ReentrantLock分析了AQS的独占功能,本文将通过同样是AQS子类的CountDownLatch分析AQS的共享功能。有了前文研究独占功能的基础,再研究共享锁就简单多了。CountDownLatch的使用CountDownLatch是同步工具类之一,可以指定一个计数值,在并发环境下由线程进行减1操作,当计数值变为0之后,被await方法阻塞的线程将会唤醒,实现线程间的同步。public void startTestCountDownLatch() { int th

2020-08-05 14:54:21 253

转载 分析ReentrantLock的实现原理

分析Java线程池的创建 分析Java线程池执行原理 分析Java线程池Callable任务执行原理 分析ReentrantLock的实现原理

2020-08-05 14:30:10 300

转载 分析Java线程池Callable任务执行原理

上一篇分析了线程池的执行原理,主要关于线程池的生命周期和任务如何在池里创建、运行和终止。不过上次研究的是execute方法,执行的是Runnable任务,它不返回任何值。如果希望任务完成后返回结果,那么需要使用Callable接口,这也是本文要研究的主题。

2020-08-05 14:28:24 722

转载 分析Java线程池执行原理

Java并发编程源码分析系列:分析Java线程池的创建上一篇已经对线程池的创建进行了分析,了解线程池既有预设的模板,也提供多种参数支撑灵活的定制。本文将会围绕线程池的生命周期,分析线程池执行任务的过程。线程池状态首先认识两个贯穿线程池代码的参数:runState:线程池运行状态 workerCount:工作线程的数量线程池用一个32位的int来同时保存runState和workerCount,其中高3位是runState,其余29位是workerCount。代码中会反复使用ru.

2020-08-05 14:27:13 201

转载 分析Java线程池的创建

分析Java线程池的创建 分析Java线程池执行原理 分析Java线程池Callable任务执行原理 分析ReentrantLock的实现原理最近在改进项目的并发功能,但开发起来磕磕碰碰的。看了好多资料,总算加深了认识。于是打算配合查看源代码,总结并发编程的原理。准备从用得最多的线程池开始,围绕创建、执行、关闭认识线程池整个生命周期的实现原理。后续再研究原子变量、并发容器、阻塞队列、同步工具、锁等等主题。java.util.concurrent里的并发工具用起来不难,但不能仅仅会用,我们要.

2020-08-05 14:26:10 149

转载 mysql慢查询

1 概念MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句。具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是记录运行10秒以上的语句。默认情况下,MySQL数据库并不启动慢查询日志,需要手动来设置这个参数。当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志

2020-07-31 14:09:19 140

原创 对称二叉树(递归+迭代)

题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3题目思路对于这道题,要求判断一颗二叉树是否是对称的。这里所说的对称,就是轴对称。因此在判断上,可以直接使用递归的思路,也可也使用非递归的方法,

2020-07-07 12:35:16 242

转载 JVM 为什么使用元空间替换了永久代?

在Java8和以后版本中JVM的内存结构慢慢发生了变化。如果在网络上搜索JVM内存结构,90%的可能会搜到Java7及以前的内存图,本篇文章将会对JVM内存结构再次细化,深入理解Java8之后内部的变化。JVM内存结构的细化 再来看一下JVM内存结构图。为了更细化的讲解,我们将该图进行进一步的优化调整。针对java7及以前版本的细化。看出变化了吗?堆和方法区连在了一起,但这并不能说堆和方法区是一起的,它们在逻辑上依旧是分开的。但在物理上来说,它们又是连续的一块内存。也就是说,方法区和

2020-07-05 17:11:27 1370

转载 SpringBean的生命周期

智商捉鸡????,实在没办法一下子理解Spring IoC和AOP的实现原理,看的闹心也不太懂,所以。。。决定拆成小的不能在小的一个个问题,一点点啃。今天先来看看Spring中Bean的生命周期。Spring Bean是Spring应用中最最重要的部分了。所以来看看Spring容器在初始化一个bean的时候会做那些事情,顺序是怎样的,在容器关闭的时候,又会做哪些事情。示例代码spring版本:4.2.3.RELEASE 鉴于Spring源码是用gradle构建的,我也决定舍弃我...

2020-07-02 10:42:44 510

转载 SpringBoot的20道面试题

面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望。下面,我给大家总结下有哪些 Spring Boot 的面试题,这是我经常拿来问面试者的,希望对你有帮助。1、什么是 Spring Boot?Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发

2020-07-02 09:19:46 238

原创 Java用POI读取excel文件,报异常:NotOLE2FileException: Invalid header signature; read xxx, expected 0xE11AB1A1

背景: 系统支持excel的两种文件上传 xlsx 和 xls 问题:今天上传了一个 xlsx的文档 ,系统错误为org.apache.poi.openxml4j.exceptions.OLE2NotOfficeXmlFileException: The supplied data appears to be in the OLE2 Format. You are calling the part of POI that deals with OOXML (Office Open XML) D.

2020-07-01 14:57:48 19662 3

原创 《JVM性能调优》-jstat命令详解

Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。jstat工具特别强大,有...

2020-03-26 10:50:34 233

原创 hashCode() 和 equals() 简单描述

有一些其他的相关及技术就不在描写,网上很多 ,可以具体看下Hash表上面描述的hashCode = 哈希函数(key) 不完全准确,hashCode是Object的一个native方法,底层C实现,返回值为int 总结如下:1.若重写了equals(Object obj)方法,则有必要重写hashCode()方法。2.若两个对象equals(Object obj)返回true,则h...

2020-01-14 12:00:03 315

原创 Java 最常见 200+ 面试题全解析:面试必备(2019)

【说明】文章面试题整理出自:https://blog.csdn.net/sufu1065/article/details/88051083目录【说明】适宜阅读人群一、Java 基础二、容器三、多线程四、反射五、对象拷贝六、Java Web七、异常八、网络九、设计模式十、Spring/Spring MVC十一、Spring Boot/Spr...

2020-01-02 16:17:08 19395 8

转载 阿里云ECS服务器+WordPress快速搭建个人博客

本文是转载,但完善了一些细节,精简了部分步骤,以及lnmp一键安装后的一些单独服务启动命令。开始前准备: 一台阿里云ECS或者轻量级的服务器 Linux基础操作 喜欢捣鼓,善于思考 Windows上面安装好Xshell或者类似的工具,设置好你的阿里云服务器的用户名和密码,保证成功连接。这里建议使用【root】或者具有部分root权限的用户来登录...

2019-10-30 17:15:11 3038

原创 身份证号码编码规则及校验位校验算法

一、身份证号码作为独一无二代表公民信息的号码,它的组成是由一下的数字表示的:(1)第1、2位数字表示:所在省(直辖市、自治区)的代码;(2)第3、4位数字表示:所在地级市(自治州)的代码;(3)第5、6位数字表示:所在区(县、自治县、县级市)的代码;(4)第7—14位数字表示:出生年、月、日;(5)第15、16位数字表示:所在地的派出所的代码;(6)第17位数字表示性别:奇数表示男性,...

2019-10-24 17:08:21 34586 3

转载 git解决error: The following untracked working tree files would be overwritten by checkout

近期看大家评论,直接执行会有误删代码情况,请大家看好参数详解,谨慎执行,PS:友情提示 这个会把 所有没有提交到git的文件都删除了在IDEA中进行分支切换时,出现如此错误,导致无法正常切换:error: The following untracked working tree files would be overwritten by checkout通过错误提示可知,是由于一些un...

2019-10-15 16:44:44 987

原创 windows环境下idea的git安装与配置

1、idea如何配置git,PS:需要注意的是有此连接教程时间比较早,会有一些出入,教程中提到的环境变量 默认安装的时候可以自动配置见文章 https://blog.csdn.net/yshuoo/article/details/787414632、idea配置了git但是导出的项目中 右键只有SVN没有Git的情况只需要将下面截图中的subversion改成git就可以...

2019-10-15 15:46:05 386

原创 有关Git的一些使用

1、GIT官网介绍https://git-scm.com/book/zh/v2 也可以上面下载PDF epub mobi等格式进行查看2、总结一些常用的git命令说明操作分支创建git branch develop分支切换git checkout develop分支创建并切换git checkout -b develop创建远程分支git pus...

2019-10-15 15:34:24 105

原创 学习笔记(01):深入讲解HashMap底层原理-HashMap的put方法源码解析

【课程介绍】 本课程由业内技术大牛,经验丰富的讲师进行实战技术分享。 将带领大家深入理解HashMap的构造方法等源码底层实现原理,能够让学员逐步学会自己看源码 ...

2019-09-22 12:21:04 132

原创 BeanUtils.copyProperties(src,target) 无法赋值

今天遇到一个很诡异的问题src的属性和target属性一模一样但就是无法赋值,target所有的属性都为null因为是实际项目,只上部分与这个问题相关的代码src 为来自页面的VO 使用@Data@Accessors(chain = true)public class TestSearchVo { // 关键字查询 private String keywor...

2019-05-16 17:59:28 3087

原创 很诡异的定时任务每天凌晨执行

这段时间项目上线,涉及到定时任务,遇到一件很诡异的事情,每天0点10分会生成报告(原本是每月1号0点5分生成报告)简单介绍下,项目使用的是springboot,有两个服务 api服务和计算服务,服务之间使用的是异步调用方式,定时任务使用的是spring @Scheduled注解执行定时任务:项目中有两个定时任务: 1、每天0点10分监控公司是否到期(监控周期为1-12个月)...

2019-05-15 12:39:33 7837

原创 关于java7-12各个版本更新介绍

JDK 12JDK 12是Java SE平台版本12的开源参考实现,由JSR 386在Java Community Process中指定。JDK 12于2019年3月19日达到一般可用性.GPL下的生产就绪二进制文件可从Oracle获得;其他供应商的二进制文件很快就会出现。该版本的功能和时间表是通过JEP流程提出和跟踪的,并由JEP 2.0提案进行了修订。使用JDK R...

2019-05-14 16:35:34 3209

原创 springboot中的日志配置

log4j2的日志文件配置,OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL<?xml version="1.0" encoding="UTF-8"?><!-- status="OFF",可以去掉,它的含义为是否记录log4j2本身的event信息,默认是OFF --><configuration status="OFF"> ...

2019-05-09 17:54:01 226

转载 千万数据的mysql分库分表

单表数据量达到1000W以后,就要拆了.背景情况用户表达到了 几千万级别,在做很多操作都比较吃力,.所以,考虑对其进行分表.常用的切分方案数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分;另外一种则是根据表中的数据的逻辑关系,将同一个表中的数据按...

2019-05-09 17:26:02 1474

转载 mysql数据库分库分表

mysql数据库切分前言通过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制。一旦数据库过于庞大,尤其是当写入过于频繁,非常难由一台主机支撑的时候,我们还是会面临到扩展瓶颈。这时候,我们就必须许找其它技术手段来解决这个瓶颈,那就是我们这一章所要介绍恶的数据切分技术。何谓数据切分可能非常多读者朋友在网上或者杂志上面都已经多次见到关于数据切分的相关文章了...

2019-05-09 17:17:50 292

原创 mysql大数据解决方案--分区分表分库

这篇文章主要介绍了MyBatis实现Mysql数据库分库分表操作和总结,需要的朋友可以参考下前言作为一个数据库,作为数据库中的一张表,随着用户的增多随着时间的推移,总有一天,数据量会大到一个难以处理的地步。这时仅仅一张表的数据就已经超过了千万,无论是查询还是修改,对于它的操作都会很耗时,这时就需要进行数据库切分的操作了。对于一个大型的互联网应用,海量数据的存储和访问成为了系统设计的瓶颈...

2019-05-09 17:06:34 2465

metricbeat-7.9.3

metricbeat-7.9.3-linux-x86_64.tar.gz 官网压缩包 免安装版 为了节省时间 上传服务器解压即可使用

2020-11-09

filebeat-7.9.3

filebeat-7.9.3-linux-x86_64.tar.gz 官网压缩包 免安装版 为了节省时间 上传服务器解压即可使用

2020-11-09

docker_epel-release-6-8.noarch.rpm

有关于linux系统(redhat)安装docker的依赖包docker_epel-release-6-8.noarch.rpm

2018-08-22

docker-1.7.0 rpm包

有关于linux系统(redhat6.5)redhat6.5 安装 docker 1.7.0 rpm本地安装包

2018-08-22

空空如也

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

TA关注的人

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