2 璀璨英雄

尚未进行身份认证

人一生一定会痛苦2次,一是后悔时的痛苦,二是自律时的痛苦。

等级
TA的排名 3w+

Linux下安装Nginx (yum方式)

执行如下命令进行yum安装nginxyum install nginx查看nginx版本# 查看nginx版本nginx -v# 查看编译参数nginx -V查看安装目录 rpm -ql nginx查看配置文件# 用于日志切割/etc/logrotate.d/nginx安装完成之后目录如下:nginx启动目录:/usr/sbinnginx配...

2020-03-27 15:18:27

git:GitLab代码回滚到特定版本

在当前branch上多次commit代码并且push后,发现不符合要求,需要回滚到特定的版本。步骤如下:1、查找commitId(1)用命令行打开git项目路径,输入git log命令查看commit记录,如下:$ git log(2)也可以去gitlab托管平台 History 看commitidd580ea7dab097d8ea6d658adbc7e9d57ef22669a...

2020-03-26 17:52:56

linux系统下完全卸载Jenkins

1、关闭tomcat:./shutdown.sh2、删除/webapps/jenkins下所有文件:rm -rf jenkins3、删除配置文件:rm -rf /root/.jenkins/

2020-03-26 12:11:56

Arthas性能检测

下载:​​​​​​​curl -O https://alibaba.github.io/arthas/arthas-boot.jar帮助文档:https://alibaba.github.io/arthas

2020-03-18 17:15:06

Mysql根据汉字英文字母进行排序

如果数据库默认是GBK的,不需要转换,如果是UTF-8的,转换成GBK就可以了,GBK默认安装英文字母进行排序select * from permission ORDER BY CONVERT(name USING GBK) ASC...

2020-03-17 15:46:22

Rxjava2入门教程四:Scheduler线程调度器

Scheduler(线程调度器)赋予RxJava简洁明了的异步操作,可以说是RxJava中最值得称道的地方。在之前的代码中,Observable发射数据流,Observer接收响应数据流,以及Operators加工数据流均是在同一个线程中,实现出来的是一个同步的函数响应式。但是函数响应式的实际应用却不是这样的,大部分都是后台处理,前台响应的一个过程。Observable生成发射数据流,以及Ope...

2020-03-12 16:29:56

Rxjava2入门教程三:Operators操作符

Operators操作符操作符(Operators):其实质是函数式编程中的高阶函数,是对响应式编程的各个过程拆分封装后的产物。以便于我们操作数据流。按照其作用具体可分为以下几类:创建:创建一个可观察对象Observable并发射数据过滤:从Observable发射的数据中取出特定的值变换:对Observable发射的数据执行变换操作组合:组合多个Observable,例如:{1,2...

2020-03-12 16:28:00

Rxjava2入门教程二:Observable与Observer响应式编程在Rxjava2中的典型实现

在RxJava中,函数响应式编程具体表现为一个观察者(Observer)订阅一个可观察对象(Observable),通过创建可观察对象发射数据流,经过一系列操作符(Operators)加工处理和线程调度器(Scheduler)在不同线程间的转发,最后由观察者接受并做出响应的一个过程ObservableSource与Observer是RxJava2中最典型的一组观察者与可观察对象的组合,其他四组可...

2020-03-12 16:25:15

Rxjava2入门教程一

RxJava是函数响应式编程思想在java语言上的具体实现。RxJava2在这一实现下,对Rxjava1进行了全面重写,如果之前没接触过RxJava,可以直接从Rxjava2入门,而不需要了解RxJava1。在使用RxJava2之前,对于Android开发,需要在项目中添加以下依赖 implementation "io.reactivex.rxjava2:rxjava:2.1.3"...

2020-03-12 16:23:25

自己常用的一个递归代码片段及获取级联代码

1、查询出所有的权限2、创建一个集合存放所有的一级菜单1、 遍历一级菜单 //递归 for (MerPermissionVo pid : parentList) { List<MerPermissionVo> childList = dgPermissionList(allList, pid.getId()); ...

2020-02-27 14:34:05

用poi解析带密码的xls、xlsx文件

FileInputStream fileInputStream = request.getFileInputStream(); Workbook sheets = null; try { String password = request.getPassword(); if (StringUtils....

2020-01-06 10:17:01

一文秒懂 Java CompletableFuture ( 下 )

上一章节中我们讲解了 CompletableFuture 的一些基本用法,比如如何使用和如何处理异步计算结果。本章节我们继续,主要讲解如何使用 CompletableFuture 来组合异步计算的结果组合 FuturesCompletableFuture API 最吸引人的部分,应该是能够在一系列链式计算步骤中组合 CompletableFuture 实例。这种链式的结果本身就是Compl...

2019-12-26 18:07:02

一文秒懂 Java CompletableFuture ( 上 )

本文我们来了解下 Java 8 引入的 CompletableFuture 类,了解下该类提供的功能和用例。Java 中的异步计算异步计算很难推理的,因为我们的大脑是同步的,会将任何计算看成是一系列的同步计算。我们在实现异步计算时,往往会把回调的动作分散在代码中或者深深地嵌套在彼此内部,这种情况下,当我们需要处理其中一个步骤中可能发生的错误时,情况变得更糟。人生的一大悲剧是,尽管 ...

2019-12-26 18:03:16

redis相关以及redis做分布式锁可能出现的问题

前言:有一篇文章对redis的介绍不错,拿来加深印象。在Redis中,允许用户设置最大使用内存大小server.maxmemory,当Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。1.volatile-lru:从已设置过期的数据集中挑选最近最少使用的淘汰2.volatile-ttr:从已设置过期的数据集中挑选将要过期的数据淘汰3.volatile-random:...

2019-12-25 09:38:33

Redis的Key过期机制

这个东西之前配置过,今天本来记录一下,加深印象,结果忙了一下午,问题出在redis的配置中,即将崩溃,这里提个醒,redis的配置文件中,对于每一行配置前面别有空格,正确做法一直顶到头,这个真是恶心的配置,一点都不智能,因为开启key过期要修改配置文件,所以在修改的时候别忘了这个坑。我使用的windows版本的redis为Redis-x64-3.2.100,使用的是.msi版本的,使用...

2019-12-23 17:45:14

分布式任务调度中心

xxl的网址https://www.xuxueli.com/page/projects.html总结的非常好,可以借鉴一下https://www.cnblogs.com/ysocean/p/10541151.html

2019-12-17 18:09:06

关于Runtime.getRuntime().exec(),产生阻塞的2个陷阱

背景相信做java服务端开发的童鞋,经常会遇到Java应用调用外部命令启动一些新进程来执行一些操作的场景,这时候就会使用到Runtime.getRuntime().exec(),然而这个方法如果不谨慎很容易掉进陷阱。我们的一个PDF转码服务就踩到了这个坑掉进陷阱,这个转码服务主要是对pdf进行加密和转码成swf。这个服务上线后大部分时间都是稳定运行的,但是隔一段时间就会死掉,然后人肉手动重...

2019-12-17 18:05:59

【Java并发】ReadWriteLock读写锁的使用

说到Java并发编程,很多开发第一个想到同时也是经常常用的肯定是Synchronized,但是小编这里提出一个问题,Synchronized存在明显的一个性能问题就是读与读之间互斥,简言之就是,我们编程想要实现的最好效果是,可以做到读和读互不影响,读和写互斥,写和写互斥,提高读写的效率,如何实现呢?Java并发包中ReadWriteLock是一个接口,主要有两个方法,如下:pu...

2019-12-16 14:20:04

Java中的双重检查锁(double checked locking)

在实现单例模式时,如果未考虑多线程的情况,就容易写出下面的错误代码:public class Singleton { private static Singleton uniqueSingleton; private Singleton() { } public Singleton getInstance() { if (null == u...

2019-12-03 17:52:25

Java-分布式锁三种实现方式介绍

一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美12的运行,毫无Bug!注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间!后来业务发展,需要做集群,一个应用需要部署到几...

2019-12-02 11:27:56

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。