自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李小白的博客

记录小白的成长轨迹和学习分享与总结

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

原创 Linux jdk下载安装,提供下载链接

1、安装准备:下载jdk1.8的安装包。我下载的是 :jdk-8u291-linux-x64.tar.gz当然也可以在官网中选择其他版本的下载地址链接:https://pan.baidu.com/s/1OjZGXSYlKG8C2oO7ax-bAw提取码:77bp2、进入/usr/local/目录后,执行以下命令:cd /usr/localmkdir javacd java#将安装包通过xftp上传至java目录下,执行如下命令tar -xf jdk-8u291-linu...

2021-04-27 18:09:44 962

原创 Java—多线程之LockSupport

1、简介LockSupport是一个线程工具类,所有的方法都是静态方法,可以让线程在任意位置阻塞,也可以在任意位置唤醒。它的内部其实两类主要的方法:park(停车阻塞线程)和unpark(启动唤醒线程)。/** * Basic thread blocking primitives for creating locks and other * synchronization classes. * * <p>This class associates, with each th

2021-02-24 12:06:46 265

原创 Java—多线程之同步机制

新的同步机制(新的锁类型)一、ReentrantLockReentrantLock可以用于替代synchronized1、用法Lock lock = new ReentrantLock();void m1() { lock.lock(); //synchronized(this) try { // 业务代码 } catch (InterruptedException e) { e.printStackTrace(); } final

2021-02-23 15:58:20 368

原创 Linux 远程拷贝命令

Linux的scp命令可以实现两台服务器之间互相拷贝文件基本的命令格式scp [参数] [原路径] [目标路径]当原或者目标路径是远程主机的时候格式为远程用户@远程主机地址:远程目录一、从本机拷贝到目标远程主机(1)复制文件命令格式:scp local_file remote_username@remote_ip:remote_folderscp /usr/local/mysql/data/ibdata1 [email protected]:/usr/loc..

2021-02-23 14:43:06 4266

原创 Linux下的时钟同步

场景数据库集群服务器之间的时钟同步如何同步通过ntp可以用下面的命令查看是否安装rpm -aq | grep ntp操作步骤1、安装在线安装 yum install ntp离线安装1)需要自己下载rpm包链接:https://pan.baidu.com/s/1LY0_aha4ZOPv6HviPShgQQ提取码:e30w下载完成后依次安装[root@localhost ntp]# rpm -ivh autogen-libopts...

2021-02-22 18:09:03 1073

原创 Java-多线程之线程池是否需要关闭

Jmeter压力测试背景之前的文章Java—多线程之学了就要用-CountDownLatch中,用线程池处理相关业务的功能代码,在程序处理完毕后,线程池并未关闭,后来review代码的时候发现了这个问题,将线程池关闭。上线之前通过jmeter进行压力测试。对比线程池关闭和不关闭时压力测试的情况。下面通过测试数据进行对比。测试核心代码@RestController@RequestMapping("tbgl/tbjd")public class TbjdController {/*

2021-02-19 09:59:25 3198 2

原创 JAVA—多线程与高并发之CAS

CAS在了解CAS之前,我们要先要了解一下atomic(java.util.concurrent.atomic),为什么在jdk1.5开始引入了atomic包呢?Atomic1、为什么要使用Atomic类在多线程和高并发环境中,我们经常会对一个int型的共享变量值进行+1或-1操作,例如:int count = 0;// ...count ++;但是这种写法,在多线程共同修改共享变量的情况下,会出现问题,导致实际值和预期值不符,即上面的代码是线程不安全的。因此我们需要实现线程的同步。通常的

2020-09-16 13:05:39 541

原创 JAVA—多线程与高并发之Volatile

Volatile作用1. 保证线程可见性多线程之间共享的变量是存放在主内存(堆内存)中的,线程运行时,把主内存中的变量复制一份到自己的工作区,之后在线程执行的过程中就使用自己工作区中的副本了,如果这时其他线程对主内存中的变量进行了修改,当前线程可能无法获取到最新的值。以下三种情况除外,当线程代码块中存在下面的代码时,会重新从主内存同步变量值当前线程中使用了System.out.println()进行输出线程进行sleep线程中进行文件操作问题:变量在工作内存中改变了之后会立刻同步到

2020-09-16 12:57:13 110

原创 Java—多线程之学了就要用-CountDownLatch

背景最近在做的项目中有一个任务工作台功能,需要展示当前进行的报表填报任务的总体进度,便于管理人员进行进度跟踪和整体感知。但是这个功能写完之后,当系统下发的报表任务较多时,任务工作台加载的就会很慢,大约5秒多才能完成加载。用户体验太差,正好这段时间在学习多线程相关的知识,就决定来优化一下。改造过程1、分析任务属于CPU密集型还是IO密集型分清是计算(CPU)密集型任务还是IO密集型任务至关重要,直接关系到线程池的初始化参数的设置。对于计算密集型的任务在拥有N个处理器的系统上,当线程池的大

2020-08-31 18:02:43 357

原创 多线程与高并发之synchronized

一、进程与线程的概念进程在计算机里一个任务就是一个进程,进程是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。线程进程内部还需要同时执行多个子任务,这些子任务被称为线程。一个程序里不同的执行路径,就是一个线程二、创建线程的三种方式继承Thread类创建线程类实现Runnerable接口或者Callable接口通过线程池进行创建三、线程生命周期(状态迁移圈)NewRunnable(Ready Running)TimedWaitingWaitingB

2020-08-31 16:50:18 523

原创 Docker-容器间通信

Docker容器间通信Docker会为每个创建的容器自动分配一个虚拟IP,这个虚拟IP无法从容器外侧进行访问,只是Docker环境内部容器间彼此通信的标识,容器间的网络是互通互联的。但是通过这种虚拟IP方式,进行容器间的通信,有一些局限性。因为在Docker中创建一个容器非常容易,比如说新创建的MySQL容器可能会替代之前创建的MySQL容器,而此时Tomcat服务器中配置的是之前的MySQL容器的Ip地址,因此随着新容器的创建,之前Tomcat配置的Ip地址需要不断的变更,并重启服务。当有很多To

2020-08-12 17:10:21 633

原创 Docker—Docker及Dockerfile常用命令

Docker常用命令docker pull 镜像名<:tags> -从远程仓库拉取镜像docker images -查看本地镜像docker run镜像名<:tags> - 创建容器,启动应用(本地若无镜像,则会先从远程仓库拉取)docker ps [options] - 查看正在运行的容器 -a :显示所有的容器,...

2020-08-11 15:02:09 639

原创 Docker—Docker基本概念以及执行流程

什么是DockerDocker 是一个开源的应用容器引擎,基于Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。Docker的基本概念Docker 是提供应用打包,部署和运行应用程序的容器话平台。..

2020-08-11 13:35:08 1162

原创 Docker—自定义镜像(Dockerfile镜像描述文件的使用)

什么是DockerfileDockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。自定义镜像可以用来满足我们的个性化需求。Docker通过读取Dockerfile 中指令按步自动生成镜像docker -build -t 机构/镜像名<:tags> dockerfile目录如何通过Dockerfile构建自定义镜像Dockerfile自动部署Tomcat应用示例1、在本地目录创建docker应用例如在E:\docker\dock

2020-08-10 17:07:14 949

原创 Docker—docker社区版安装

前置条件:自己通过VMware安装,或者在阿里云上开通centos7以上的操作系统下载XShell,建好链接安装步骤:1、安装yum工具集(yum-utils 简化安装源的配置过程)、docker数据存储驱动device-mapper-persistent-data 和lvm2(docker存储需要依赖着两个驱动完成)yum install -y yum-utils device-mapper-persistent-data lvm22、修改yum安装源,提高下载速度..

2020-08-03 18:40:34 810

原创 Java-多线程之线程同步

线程同步多个线程同时运行的时候,现场的调度是由操作系统决定的,程序本身无法决定。当多个线程同时读写一个变量的时候,就有可能出现问题。示例:我们定义一个AddThread线程和一个DecThread线程,它们分别对一个count变量循环添加100次,再循环减少100次,最终变量的结果应该为0。代码如下:class AddThread extends Thread{ @Override public void run() { for (int i = 0;

2020-07-23 23:41:20 138

原创 Java—多线程基本概念

1、操作系统现代操作系统都可以执行多任务操作系统轮流让多个任务交替运行,让人感觉就好像在同时执行多个任务。2、进程在计算机里一个任务就是一个进程,进程是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。3、线程进程内部还需要同时执行多个子任务,这些子任务被称为线程4、进程和线程之间的关系一个进程可以包含一个或多个线程(至少一个线程) 线程是操作系统调度的最小任务单位 如何调度线程完全由操作系统决定5、实现多任务的方法多进程模式(每个进程只有一个线程)

2020-07-23 18:52:43 103

原创 SpringBoot框架默认开启了事务吗

背景今天要为service层中的业务逻辑代码添加事务,于是就想看看框架是否通过直接在类或方法上添加@Transactional 注解,达到配置事务的目的。解决过程 通过百度搜索“SpringBoot开启事务管理的相关配置”,搜到的相关文章描述如下: Spring的事务处理中,通用的事务处理流程是由抽象事务管理器AbstractPlatformTransactionM...

2020-03-23 16:11:05 13275 1

原创 代码托管网站-码云在我要收工时候你挂了

今天正准备push代码手工,我先pull拉取码云上的最新代码,出现如下错误访问码云官网也是报502错误,本打算push代码手工,明天去单位台式机继续开发的,结果等了半小时,出现了短时间的恢复服务,我把后台代码提交了,正打算提交前台代码时,又报502了。不知道码云是经常出现这种情况,还是偶尔。...

2020-03-19 20:54:02 393

原创 Elasticsearch 学习第7篇—布尔过滤器

bool过滤bool过滤可以用来合并多个过滤条件查询结果的布尔逻辑,bool 过滤器由三部分组成:{ "bool" : { "must" : [], "should" : [], "must_not" : [], }}它包含以下操作符:must:多个查询条件的完全匹配,相当于and。 must_not:多...

2019-10-17 17:45:31 723

原创 Elasticsearch 学习踩坑之路—相同数据不同分数原因

最近在学习Elasticsearch,进行match查询时发现数据都是同样的内容,但是命中的结果得分却不相同,感到很困惑,示例如下:{ "took" : 1, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 ...

2019-10-16 10:36:25 2350

原创 Elasticsearch 学习踩坑之路—版本差异

1、版本问题Elasticsearch的最新版本已经到7.4.0,但很多人可能是像我一样的初学者,没有经历过版本的演化升级过程,因此也就不知道不同版本之间的变动和差异。当我们开始实操的时候,大多也是跟着网上的一些资料进行学习,而这些资料很多都是基于某个版本的,而问题就在于初学者并不知道全貌,也不知道不同版本具体有哪些差异,我们通过零散的知识去构建索引,进行数据查询的时候就会遇到很多令人困...

2019-10-14 17:36:02 1401

原创 今日BUG— java.lang.NumberFormatException

今日照例巡检系统,打开系统的汇聚首页,发现数据都消失了,于是查看其他服务器上部署的版本也出现了同样的问题,而其他功能并未受影响,排除后台服务挂掉的可能,内心生出疑问一直运行稳定的程序怎么突然都查不出来内容了呢?赶紧查看系统运行日志,果然看见了报错信息 java.lang.NumberFormatException: For input string: "231584120...

2019-10-11 14:48:43 215

转载 Elasticsearch 学习第6篇——Elasticsearch原理

小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了。随着央视诗词大会的热播,小史开始对诗词感兴趣,最喜欢的就是飞花令的环节。但是由于小史很久没有背过诗词了,飞一个字很难说出一句,很多之前很熟悉的诗句也想不起来。倒排索引吕老师:但是我让你说出带“前”字的诗句...

2019-10-10 17:49:08 161

原创 Elasticsearch 学习第5篇—elasticsearch与hanlp插件的集成

HanLPHanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。根据测试hanlp比ik具有更好的分词效果,因此想使用hanlp作为elasticsearch中的分词插件,接下来介绍hanlp插件和elasticsearch的集成安装过程。插件安装 ...

2019-09-10 11:51:06 3292

原创 JavaScript学习:节点类型之DocumentFragment类型

DocumentFragment的使用可以防止浏览器反复渲染在所有节点类型中,只有 DocumentFragment 在文档中没有对应的标记。DOM 规定文档片段 (document fragment)是一种“轻量级”的文档,可以包含和控制节点,但不会像完整的文档那样占用额外的资源。DocumentFragment 节点具有下列特征: nodeType 的值为 11; nodeNa...

2019-09-09 23:17:56 479

原创 JavaScript学习:DOM节点之分割文本节点——splitText方法

文本节点学习时觉得需要记录的点分割文本节点splitText()方法会将一个文本节点分成两个文本节点,即按照指定的位置分割 nodeValue 值。原来的文本节点将包含从开始到指定位置之前的内容,新文本节点将包含剩下的文本。这个方法会返回一个新文本节点,该节点与原节点的 parentNode 相同。来看下面的例子。var element = document.createElem...

2019-09-05 22:57:13 1828

原创 JavaScript学习:DOM简介

DOMDOM(文档对象模型)是针对 HTML和 XML文档的一个 API(应用程序编程接口)。DOM描绘了一个层次化的节点树,允许开发人员添加、移除和修改页面的某一部分。DOM可以将任何 HTML 或 XML文档描绘成一个由多层节点构成的结构。节点节点分为几种不同的类型,每种类型分别表示文档中不同的信息及(或)标记。每个节点都拥有各自的特点、数据和方法,另 外也与其他节点存在某...

2019-09-05 22:48:00 84

原创 Elasticsearch 学习第4篇—Head插件使用

1、创建索引需要指定中文分词器的索引查询请求路径http://localhost:9200/accounts/{ "mappings": { "person": { "properties": { "user": { "type": "text", "analyzer": "ik_max_word",...

2019-08-28 13:57:02 822

原创 Elasticsearch 学习第3篇——插件安装ik和客户端Head安装

elasticsearch-6.8.1安装可以参考Elasticsearch学习第1篇——下载、启动(windows版本6.8.1)1、中文分词插件ik下载中文分词插件ik,在E:\elasticsearch-6.8.1\bin目录下执行如下命令E:\elasticsearch-6.8.1\bin>elasticsearch-plugin install https://g...

2019-08-27 15:43:05 278

原创 Elasticsearch学习第1篇——下载、启动(windows版本6.8.1)

Elasticsearch的运行依赖于JDK,在安装ElasticSearch前需要先完成JDK的安装,ES从5.0版本后,JDK的版本需要1.81、软件下载Elasticsearch 历史版本下载地址:https://www.elastic.co/cn/downloads/past-releases也可以从我的百度网盘下载,下载地址:https://pan.baidu.com...

2019-08-27 10:40:20 777

原创 Elasticsearch 学习第2篇—状态查询接口Cat

1、cat命令 Elasticsearch中信息很多,如果单凭肉眼来寻找复杂数据之间的关系,是很困难的。因此cat命令应运而生,它帮助开发者快速查询Elasticsearch的相关信息。2、cat通用参数参数名 指令示例 功能 Verbose GET /_cat/XXX/?v 开启详细输出 Help GET /_cat/XXX/?hel...

2019-08-13 17:03:51 206

原创 使用ECharts树图遇到的问题roam:true不生效

问题描述: 看echarts中的官方实例中树图添加roam:true配置后,树图就可以开启鼠标缩放和平移漫游,但是本地用的树图中加入roam:true没有任何反应,百度未果后决定自己试验下 原因: echarts的版本问题,本地的echarts版本不支持这个属性配置。解决办法 升级echarts至最新版本,我用的是4.2.1,下载链接:echar...

2019-06-21 17:01:51 6563

原创 JavaScript学习:引用类型

引用类型定义 引用类型的值(即对象)是引用类型的一个实例。引 用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。1、引用类型-Object 大多数引用类型值都是 Object 类型的实例;而且,Object 也是 ECMAScript 中使用多的一个类型。// 创建 Object 实例的方式有两种。// 1.使用 new 操作符后跟 O...

2019-05-24 22:51:57 108

原创 JavaScript学习:垃圾收集

垃圾收集1、定义JavaScript 具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存。开发人员不用再关心内存使用问题,所需内存的分配以及无用内存的回收完全实现了自动管理。2、原理 垃圾收集机制的原理其实很简单:找出那些不再继续使用的变量,然后释放其占用的内存。为此,垃圾收集器会按照固定的时间间隔(或代码执行中预定的收集时间), 周期性地执行这...

2019-05-24 17:57:34 108

原创 JavaScript学习:执行环境及作用域

1、执行环境 执行环境是 JavaScript中最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每个执行环境都有一个 与之关联的变量对象(variable object),环境中定义的所有变量和函数都保存在这个对象中。虽然我们编写的代码无法访问这个对象,但解析器在处理数据时会在后台使用它。 每个函数都有自己的执行环境。当执行流进入一个函数...

2019-05-23 22:56:44 130

原创 JavaScript学习:函数

函数定义(what) 函数对任何语言来说都是一个核心的概念。函数使用 function 关键字来声明,后跟一组参数以及函数体function functionName(arg0, arg1,...,argN) { statements}//以下是一个函数示例:function sayHi(name, message) { console.log("Hello " + nam...

2019-05-23 17:17:37 145

原创 JavaScript学习:数据类型

1.undefined和null Undefined 类型只有一个值,即特殊的 undefined。在使用 var 声明变量但未对其加以初始化时, 这个变量的值就是 undefined 例如:var message; console.log(message == undefined); //true Null 类型是第二个只有一个值的数据类型,这个特...

2019-05-21 10:31:16 95

原创 Node.js 基于socket.io的简易聊天程序

1、简单释义socket.io是一个跨浏览器支持WebSocket的实时通讯的JS。Socket.io支持及时、双向、基于事件的交流,可在不同平台、浏览器、设备上工作,可靠性和速度稳定。最典型的应用场景如:实时分析:将数据推送到客户端,客户端表现为实时计数器、图表、日志客户。 实时通讯:聊天应用 二进制流传输:socket.io支持任何形式的二进制文件传输,例如图片、视频、音频等。...

2019-04-09 11:57:59 582

原创 Node.js 极简版express实现代码

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。 定义了路由表用于执行不同的 HTTP 请求动作。 可以通过向模板传递参数来动态渲染 HTML...

2019-04-01 11:31:14 175

空空如也

空空如也

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

TA关注的人

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