自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 全面了解决策管理平台

什么是决策管理平台?随着公司数字化战役全面打响,全链路数字化建设如火如荼的开展起来。决策管理平台在公司数字化转型过程中,起到了举足轻重的作用。决策管理平台提供了“策略+动作”分离的一站式服务,赋能策略人员,降低对技术人员的依赖,在保证策略精准的同时,提升策略的实效性。通过对于策略的集中管理,统一公司各业务线的业务规则和数据模型,将企业内部的知识和经验沉淀,提升公司的技术、风控优势,为用户提供金融服务最优解。那么我们会问,决策管理平台到底是什么,为什么有这么大的能量。要了解决策管理平台是什么,首先

2021-10-30 21:37:27 877

原创 限流降级组件Sentinel、Hystrix、Resilience4j对比

1、常用限流降级组件对比 Sentinel Hystrix resilience4j 隔离策略 信号量隔离(并发线程数限流) 线程池隔离/信号量隔离 信号量隔离 熔断降级策略 基于响应时间、异常比率、异常数等 异常比率模式、超时熔断 基于异常比...

2021-09-14 18:19:44 4400

原创 自学Spring WebFlux(一)

一、什么是响应式编程(Reactive Progarmming)​响应式编程(Reactive Progarmming)是一种面向数据流和变化传播的编程范式。响应式编程主要处理二个问题:1、异步非阻塞2、流速控制Reactive Progarmming模型:二、响应式编程的优势Java 提供了两种异步编程方式:1、回调(Callbacks...

2020-01-09 18:30:53 298

原创 【求教】关于volatile关键字修饰对象型和数组的问题

各位大神,请教一个问题,我今天在sonar上看到一个报警,非基础字段不建议用volatile修饰,内容如下:我看网上的解释是volatile只是确保对象的引用地址可见。对象的成员变量是不可见的参考:https://blog.csdn.net/u014674862/article/details/89168376(这里写的很好,学习了,但是这个问题没有得到解答)public ...

2019-10-12 11:13:31 2183 3

原创 RxJava的一次业务尝试

public ResultDTO makeStrategy(MakeDecisionDTO makeDecisionDTO) { final long current = System.currentTimeMillis(); final String request = JSON.toJSONString(makeDecisionDTO); ...

2019-06-04 10:01:08 187

原创 RxJava-变换操作符和过滤操作符

变换操作符 map() 对序列的每一项都用一个函数来变换Observable发射的数据序列 flatMap()、concatMap()、flatMapIterable() 将Observable发射的数据集合变换为Observables集合,然后将这些Observable发射的数据平坦化的放进一个单独的Observable中 switchMap() 将...

2019-06-02 14:47:00 155

原创 RxJava的线程操作

1、SchedulerRxJava是一个为了异步编程而实现的库,默认情况下,RxJava只在当前线程中运行,它是单线程的,此时Observable用于发射数据流,Observer用于接收和响应数据流,各种操作符(Operators)用于加工数据流,实现出来是一个同步的函数响应式。然而响应式的实际应用是大部分操作都在后台处理,前台响应的一个过程。我们可以用RxJava的调度器来实现。Sched...

2019-05-24 11:33:25 603

原创 RxJava-创建操作符

1、RxJava的主要创建操作符操作符 描述 just 将一个或多个对象转换成发射这个或这些对象的一个Observable from 将一个Iterable、Future或者一个数组转换成一个Observable create 使用一个函数从头创建一个Observable defer 只有当订阅者订阅才创建Observable,为每个订阅创建一个新...

2019-05-23 11:41:44 305

原创 RxJava的基础知识

1、Observable一、使用RxJava的三步骤(1)、创建Observable 被观察者,使用RxJava需要一个被观察者,决定什么时候触发事件以及触发怎么样的事件,决定异步操作模块的顺序和异步操作模块的次数(2)、创建Observer 创建一个处于待命状态的观察者哨兵,可以在未来某个时刻响应Observable的通知,...

2019-05-22 17:33:48 210

原创 Python实现排序算法(冒泡、插入、选择、希尔、归并、快速)

#!/usr/bin/python# -*- coding:UTF-8 -*-import randomdef genList(length): ''' 生成指定长度的列表 ''' # print random.randint(0, 1000) list = [] for i in range(length): list.a...

2019-02-16 19:53:50 333 1

原创 (一)面向对象建模和UML初识

UML(Unified Modeling Language)一、面向对象1、基本概念软件对象,是一种将状态和行为有机集合起来形成软件构造模型对象和类对象是状态和行为构成的类是相同属性和操作的一组对象的组合消息和事件消息是指描述事件发生的信息,是对象间相互联系和作用的方式事件是指一种由系统预先定义而由用户或系统发出的动作2、基本特征抽象封装通过公共...

2019-01-05 15:41:43 747 2

原创 Docker的安装(Centos7)

一、前提Centos的系统一定要是64位的,不管版本是什么。并且内核版本至少是3.10以上$ uname -r3.10.0-229.el7.x86_64二、安装步骤确保你的yum包已经更新$ sudo yum update添加yum仓库$ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'[dockerrepo]name=Docker R...

2018-06-20 15:48:53 186

原创 MyBatis插件一次开发的总结

最近项目有个功能,对指定的参数进行加密,考虑使用AOP还是插件方式开发。我进行插件方式开发的研究,虽然最终采用了AOP的方式,但是我还是花记录一下,以后用到可以参考。因为是demo版本的代码,代码质量可能有所欠缺,哈哈。1.先定义一个需要加密的注解,该注解可以作用于参数上、和bean的属性上。keyType可以忽略,业务自有的。/** * @author krauser * @date Cre...

2018-06-08 16:09:45 642

原创 Springboot整合Swagger2

1.新增jar包 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifact...

2018-04-16 15:18:43 182

原创 初识SpringBoot

1.引入pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&quot

2018-04-13 19:58:06 193

转载 设计模式的六大规则

单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。里氏代换原则(Liskov Substitution P...

2018-03-20 11:31:43 210

转载 MyBatis的面试题

1、#{}和${}的区别是什么?注:这道题是面试官面试我同事的。答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给s...

2018-02-23 10:15:56 226

原创 RocketMq双主双从的安装

1.原理图2.安装步骤  (1) 下载    Apache:         https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip    Alibba:         https://github.com/alibaba/RocketMQ/r

2018-02-07 10:56:13 1173

原创 mysql的主从备份和读写分离

1.mysql的主从备份原理如图所示:master接收到了SQL的时候,会存入到一个binlog的文件并入库,binlog数据存储完毕后会开启一个dump thread线程,这个线程会将binlog的数据同步到slave的io thread,io thread将数据存储到delay binlog(中继日志),启动一个sql thread将数据写入slave的binlog和dat

2018-02-04 12:15:15 1602

原创 项目开发的流程和规范(技术经理应该具备的知识)

一.技术经理面临的问题1.需求原型编写和概要设计2.任务拆分与排期3.持续集成环境搭建4.难点问题攻钻5.线上紧急问题解决二.上线流程需求评审->设计->开发编码->测试->上线三.项目上线的规范1.系统的概要设计架构与模块设计 系统的关系说明系统关键流程技术选型2.集成开发

2018-01-31 13:02:53 1083

原创 Linux下安装Nginx

Linux下安装Nginx1.安装gcc g++开发类库yum -y install gcc automake autoconf libtool makeyum install gcc gcc-c++2.安装PCRE源码包cd /optwget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre

2018-01-24 15:48:34 240

原创 Linux 下安装mysql5.7

1.下载mysqlwget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz2.解压安装包tar -xzvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz3.修改文件名mv mysql-5.7.13-linux-glibc2.5-x86_

2018-01-17 20:05:17 226

原创 Linux下安装zookeeper

1.下载zookeeper wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz2.解压缩 tar -zxvf zookeeper-3.4.9.tar.gz3.进入conftouch zoo.cfg4.vim zoo.cfg

2018-01-13 20:46:16 234

原创 Linux下安装JDK1.8

1.获取jdk文件wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u1

2018-01-12 22:02:01 399

原创 JAVA8 默认方法与抽象类的比较

package org.java;/** * @author: krauser * @date: Create in 上午11:28 2018/1/9 * @Description: java 8抽象类与接口对比 * * 相同点 * 1.都是抽象类型; * 2.都可以有实现方法(以前接口不行); * 3.都可以不需要实现类或者继承者去实现所有方法,(以前不行,现在接口中默认方

2018-01-09 11:37:16 4175

原创 JAVA8 lambda表达式的初识

一直想学学JAVA8,感觉是JAVA重要的里程碑版本之一。lambda表达式只闻其名,还没有实际用过,这里写几个简单的demo尝试一下。1.函数式接口package org.java;/** * @author: krauser * @date: Create in 上午10:12 2018/1/9 * @Description:函数式接口 个注解是非必须的,只要接口符合函数

2018-01-09 11:04:38 286

原创 多线程的面试题解答(三)

SynchronizedMap和ConcurrentHashMap有什么区别?ConcurrentHashMap所使用的锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据 的时候,其他段的数据也能被其他线程访问。一次锁住一个桶。ConcurrentHashMap默认将hash表分为16个桶,诸如get,put,remove等常用操作只锁当

2018-01-08 19:12:56 306

原创 安装dubbo-admin

下载dubbo-admin地址:  https://github.com/alibaba/dubbo进入dubbo-admin目录下进行编译,指令如下:mvn package -Dmaven.skip.test=true运行结果是:Results :Tests run: 50, Failures: 0, Errors: 0, Skipped: 0[INFO][INF

2018-01-08 17:44:40 186

原创 Maven私服Nexus的搭建和使用(Mac)

1.下载对应的安装包https://www.sonatype.com/oss-thank-you-mac-tgz注意:目前的版本有2.X 和 3.X ,2.X的支持对Maven更友好一点,3.X的支持范围更广,支持ruby和docker。如果单纯的maven私服,建议使用2.x2.解压安装包,并进入对应的bin目录下启动nexus./nexus start

2018-01-03 10:50:05 8384

原创 广度优先搜索

运行时间O(V + E)   V是节点数,E是边数广度优先搜索解决路径是否存在以及路径最短问题。类似于路径最短问题,可以使用图来建模型,再使用广度优先搜索。图包含了有向图和无向图。有向图中的边为箭头,箭头的方向指定了关系的方向。无向图不带箭头,关系是双向的。队列是先进先出/栈是后进后出。因为要找到最短路径,所以要按照顺序处理搜索的元素,所以搜索列表必

2017-12-28 18:48:45 203

原创 散列表

散列表就是数组+链表的模式,可以用于快速查找,缓存,避免重复冲突,如果发生冲突,运行时间会是O(n),但是避免了冲突,运行时间则会是O(1),所以我们应该尽量避免冲突。如何避免冲突:较低的填装因子,正常0.7为最佳良好的散列函数

2017-12-28 16:54:01 197

原创 快速排序

快速排序,先找到对比数据,然后遍历其它元素,大于对比数据的放到more集合,小于对比数据的放到less集合,再对more集合和less集合排序最大运行时间O(n2)平均运行时间O(nlogn)数据量很大的情况下,快速排序是灾难性的,数据量小的情况下,效率很高/** * @author: krauser * @date: Create in 上午11:48 2017/12/2

2017-12-28 12:28:46 178

原创 选择排序

选择排序每次查找元素的最大值/最小值。运行时间是n*n-1*n-2...*2*1 即O(n2),忽略常量/** * @author: krauser * @date: Create in 下午10:07 2017/12/27 * @Description: 选择排序 * * 运行时间N*(n-1)...*2*1 * 大O写法 O(n2) 省略了常数 */public

2017-12-27 23:02:21 211

原创 数组和链表的理解和运行时间分析

说一下存储数据的二种基本方式:数组和链表内存结构:数组和链表的原理:数组会先在内存中分配空间,插入和删除元素,都会造成其它元素的重新排列,当然插入元素可以通过预留空间来处理,但是这样会造成内存的浪费,如果预留空间不够,你还是需要重新分配空间。链表会在内存中存入元素和指向下一个存储内存的地址,可以分布在内存任意地址。运行时间的差异:数组的运行时

2017-12-27 19:55:55 755

原创 二分法

二分法必须操作有序的元素列表最多查询log2N次/** * @author: krauser * @date: Create in 下午6:13 2017/12/27 * @Description: 二分法 最多查询次数log2N次 * log((double)N)/log((double)m) */public class DichotomyTest { /**

2017-12-27 18:31:52 203

原创 多线程的面试题解答(二)

1.什么是可重入锁ReentrantLock         线程可以进入任何一个它已经拥有锁同步的代码块。同一个线程,外层函数获取锁后,内层仍然有获取该锁的代码。ReentrantLock还提供了中断锁和定时锁等待。2.当一个线程进入某个对象的一个synchronized的实例方法后,其它线程是否可进入此对象的其它方法?          如果该对象其他方法没有加sy

2017-12-27 17:32:12 231

原创 多线程的面试题解答(一)

今天看到这篇文章http://ifeve.com/javaconcurrency-interview-questions-base/尝试解答一下里面的问题,陆续更新。1Java中有几种方法可以实现一个线程1.实现runnable2.实现callable3.继承thread1、继承Thread类实现多线程2、实现Runnable接口

2017-12-25 16:02:12 229

原创 kettle的入门

kettle是一个用java写的开源ETL工具,工作中用到了,分享一下使用安装:下载解压即可:下载地址  https://nchc.dl.sourceforge.net/project/pentaho/Data%20Integration/7.1/pdi-ce-7.1.0.0-12.zip解压完成后,安装环境变量vim ~/.bash_profile下编辑

2017-12-22 22:23:09 3380

原创 BIO、NIO、AIO的理解

先谈谈我对同步 异步 阻塞 非阻塞的认识:同步:Client端发送请求,等待结果返回eg: 小明去买东西,去超市买回来,东西买没买到,立即知道结果异步:Client端发送请求,不等待结果返回,(后续等Server端通知等)eg: 小明打电话让超市送过来,不知道东西有没有买到,不管结果阻塞:Client端发送请求结束后,线程会被挂起eg: 小明打完电话

2017-12-22 17:03:38 444

空空如也

空空如也

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

TA关注的人

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