- 博客(95)
- 资源 (5)
- 收藏
- 关注

原创 Elasticsearch的使用方法
前沿:下面介绍elasticsearch的使用方法。在这里我会分节介绍elasticsearch的使用方式,以及基本的知识点。一,Elasticsearch的安装。 https://blog.youkuaiyun.com/qq_38669394/article/details/80268778二,Head插件的安装。 ...
2019-02-01 16:26:54
320
1

原创 Java 集合 固定大小 与 固定时间的 设计与实现
业务场景:当我们需要在系统中保存一些数据,而这些数据只需要最新的三十分钟的数据或者最近的300条的数据,那么我们就需要添加最新的数据,删除旧的数据。1. 首先设置一个全局的缓存类,来缓存我们需要的保存的对象package com.pats.publish.analysis;import java.util.List;import java.util.concurrent.Concu...
2019-01-18 14:23:55
1125

原创 java 实现移动 波动率 的设计与实现
1.首先,我们需要知道波动率是什么?在数学定义上波动率就是标准,标准差就是方差开根号,我们先看一下方差计算公式:其中x为这组数据的平均数,下面我们需要对方差进行推导:图 2.图3.标准差 :图4.归一化处理:推导过程:我们先不管前面的1/n,对里面展开:x为平均数,第4步括号1里面为X1到Xn平方的和,我们对后面的式子乘以n再除以n,X1+X2+...+...
2018-12-07 14:40:45
1962
4

原创 springboot 与shiro权限框架整合最新版
1.首先需要一个完整的springboot的项目,搭建过程可以参考我的另一篇博客:地址:https://blog.youkuaiyun.com/qq_38669394/article/details/84232976 2先看一下我的项目目录,主要涉及到两个类:ShiroConfig 是shiro的配置类,CustomRealm 进行权限控制3.项目亲测没有任何问题,觉得有用的小伙伴可以给个关注...
2018-11-21 18:51:51
645

原创 关于 jdk1.8 时间处理的方法(实用)
下面是个人总结的关于日期时间处理的方法:package avg.position.zhangdi;import java.text.ParseException;import java.text.SimpleDateFormat;import java.time.Duration;import java.time.Instant;import java.time.LocalDa...
2018-08-08 11:10:18
3241

原创 Elasticsearch(一) 5.4.1的安装配置
将文件上传到服务器1.解压:tar xzvf elasticsearch-5.4.1.tar.gz cd elasticsearch-5.4.12.启动:./bin/elasticsearch3.不能以root用户启动,创建新用户:创建用户:useradd elastic添加密码:passwd elastic4.对用户授权:chown -R elastic...
2018-05-10 15:57:15
717
1

原创 xxl-job分布式任务调度的初步使用
xxl-job是 许雪里 同学开发的一个轻量级分布式任务调度框架。在这里开个玩笑,许雪里同学是个man(哈哈哈哈)!xxl-job的介绍和学习地址:https://www.cnblogs.com/xuxueli/p/5021979.html ...
2018-05-10 14:33:10
9335
5

原创 HashMap 原理解析
首先:说明HashMap是怎样去存储数据的。我们都知道是以‘键值对’的形式存在的。无序,不可重复。那么在存储的时候具体做了什么呢?1.HashMap做了什么?当集合要添加新的元素时,先调用这个元素的hashCode方法,就能定位到它应该放置的存储位置。如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了,就调用它的equals方法与新元素进行比较,...
2018-05-09 18:23:28
231

原创 VirtualBox配置centos7静态ip(详解)
VirtualBox安装centos7配置静态ip地址可以本机访问,可以联网。在开始之前先说一下,不知道为什么,我在网上百度的大多数是不能用的,或者只能主机访问,或者只能联网。我的配置文件为ifcfg-enp0s3话不多说:上图1.安装完centos7之后进入 2.选择设置 --->网络如下图可以看到有网卡1,2,3,4网卡1默认是勾选的我们再添加网卡2勾...
2018-04-23 16:49:51
26345
22
原创 揭秘JVM-2.1.java执行引擎工作原理——真实的机器调用
java执行引擎工作原理1.JVM作为一款虚拟机,必然涉及计算机核心的三大功能。1,方法调用:方法作为程序组成的基本单元,作为原子指令的基本封装,计算机必须能够支持方法的调用。同样,java语言的原子指令是字节码,java方法是对字节码的封装,因此JVM必须支持对java方法的调用。2,取指:这里的“取指”是指取出指令。方法是对原子指令的封装,计算机进入方法后,最终需要逐条取出这些指令并逐条执行,java方法...
2020-10-21 11:18:35
380
原创 揭秘JVM-1.java虚拟机简介
java虚拟机初步简介前言: 我因为自己学习java的东西越来越多,很多东西只得皮毛而不得窥其门道,伴随知识的增长,这种现象让我越来越痛苦,为不知道java对象在JVM内部如何存在而痛苦,为子类到底有没有继承父类的私有属性而痛苦,为当子类重写父类方法时,到底如何选择正确的方法并执行而痛苦,带着这些疑问,我们来揭秘JVM神秘的面纱。1简介作为一名资深的java开发者。那么你一定知...
2020-10-16 13:50:15
354
原创 xshell官网免费版下载
1.发现很多小伙伴找不到xshell官网免费版的下载地址,自从xshell官网改版以后,确实比较不好找。但事实上,xshell官网有提供家庭个人免费版。第一步:打开官网点击xshell下载 进入下载地址:https://www.netsarang.com/zh/all-downloads/2.第二步,向下拉:看到下面蓝色框框里,家庭/学校免费版3.第三步,点击进入,填写邮件地址,就会在邮箱收到下载链接,即可下载成功...
2020-08-26 15:49:47
6073
1
原创 如何处理Get请求参数过长
1.项目中总会遇到一些get请求参数过长,导致访问失败的问题,首先,get请求参数过长,访问失败的原因不是http协议的限制,是浏览器与服务器的长度限制导致的。2.常见的浏览器get请求方式长度限制Http get方法提交的数据大小长度并没有限制,Http协议规范没有对URL长度进行限制。 目前说的get长度有限制,是特定的浏览器及服务器对它的限制。各种浏览器和服务器的最大处理能力如下:IE:对URL的最大限制为2083个字符,若超出这个数字,...
2020-08-26 15:03:21
21974
原创 JVM-4.类加载机制
1.本文来源:陈树义的博客园2.终于到了我最感兴趣的地方,解决了我很多疑惑。相信也是很多人感觉疑惑的知识点。当 Java 虚拟机将 Java 源码编译为字节码之后,虚拟机便可以将字节码读取进内存,从而进行解析、运行等整个过程,这个过程我们叫:Java 虚拟机的类加载机制。JVM 虚拟机执行 class 字节码的过程可以分为七个阶段:加载、验证、准备、解析、初始化、使用、卸载。在开始聊之前,先给大家看一道面试题。class Grandpa{ static {
2020-07-24 18:01:07
184
原创 JVM-3.内存结构
1.本文来源:陈树义的博客园看到这里,我相信大家对于一个 Java 源文件是如何变成字节码文件,以及字节码文件的含义已经非常清楚了。那么接下来就是让 Java 虚拟机运行字节码文件,从而得出我们最终想要的结果了。在这个过程中,Java 虚拟机会加载字节码文件,将其存入 Java 虚拟机的内存空间中,之后进行一系列的初始化动作,最后运行程序得出结果。那么字节码数据在 Java 虚拟机内存中是如何存放的 ?Java 虚拟机在为类实例或成员变量分配内存是如何分配的 ?要解答上面这些问题,我们首先需要了解一
2020-07-24 17:27:21
154
原创 JVM-2.字节码文件结构
本文来源:陈树义的博客园温馨提示:此篇文章长达两万字,图片50多张,内容非常多,建议收藏后再看。前面我们说到 Java 虚拟机使用字节码实现了跨平台的愿景,无论什么系统,我们都可以使用 Java 虚拟机解释执行字节码文件。但其实字节码是有一套规范的,而规定字节码格式的就是《Java 虚拟机规范》。《Java 虚拟机规范》规定了 Java 虚拟机结构、Class 类文件结构、字节码指令等内容。其中类文件结构是有必要了解的一个内容。字节码文件结构是一组以 8 位字节为基础的二进制流,各数据项目严格按
2020-07-24 17:10:52
204
原创 JVM-1.源代码到机器码
本文来源:陈树义的博客园1.无论什么语言写的代码,其到最后都是通过机器码运行的,无一例外。下面要说的就是源代码到机器码经历了什么?如下图所示,编译器可以分为:前端编译器、JIT 编译器和AOT编译器。前端编译器:源代码到字节码之前我们说到:对于 Java 虚拟机来说,其实际输入的是字节码文件,而不是 Java 文件。那么对于 Java 语言而言,其实怎么将 Java 代码转化成字节码文件的呢?我们知道在 JDK 的安装目录里有一个 javac 工具,就是它将 Java 代码翻译成字.
2020-07-24 16:02:34
525
原创 关于继承的深度思考
1.先看一下继承的基本定义:继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。特征:1.Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的。2.子类拥有父类非 private 的属性、方法。3.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。4.子类可以用自己的方式实现父类的方法。(方法的重写)5.Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父.
2020-07-16 19:24:25
435
原创 java-基础-构造函数
1.最近在看反射的东西,通过Class对象的构造方法,去创建对象java对象package com.newland.draw.reflect;public class Person { public Person() { System.out.println("无参"); } public Person(String name) { System.out.println(name); this.name = name; } public Person(int
2020-07-13 17:25:32
303
原创 设计模式-8.代理模式
1.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。用户可以在代理对象中操作原对象。2.代理模式的一般应用:提供了对目标对象的间接访问方式,即通过代理访问目标对象。如此便于在目标实现的基础上增加额外的功能操作,前拦截,后拦截等,以满足自身的业务需求。3.代理模式分为静态代理和动态代理 现在用一个小需求展示:给所有方法添加日志打印功能 打印请求参数。public class Calculator { //加 public int add(int a, int b.
2020-07-07 19:38:05
260
原创 设计模式-7.装饰者模式
1.装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。2.作用:动态地给一个对象添加一些额外的职责,装饰者提供了比继承更有弹性的替代方案。3.我觉得我写的不会比这个更好了:https://www.runoob.com/design-pattern/decorator-pattern.html
2020-06-29 18:17:20
410
原创 基于过滤器 实现长链接转短链接
1.关于springboot中过滤器的实现已经介绍过了。地址:https://blog.youkuaiyun.com/qq_38669394/article/details/1069267392.现在介绍一下 基于过滤器实现长连接转 短链接需求:公司最近有个需求,需要做一个分享的链接,由于需要记载分享人等信息,分享的链接就有点过长,需要采用短链接分享。长链接:https://*****/starposmall/pages/coupon/couponCenter?couponId=***2020061011.
2020-06-23 17:47:08
342
原创 springboot基于过滤器 实现用户权限控制
springboot 的过滤器实现主要有两个类1.过滤器注册类package com.newland.common.autoconfigure;import com.newland.common.filter.SessionFilter;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean;import o
2020-06-23 17:09:13
3768
原创 页面请求加载框,并屏蔽页面点击
1.最近项目的页面一直出现 重复点击的问题,因为时间原因,后台也没有做防止重复点击措施,就想着在页面控制吧,加了一个页面加载框,点击提交时,禁止点击页面。在网上找到的。具体效果如下2. 看一下网上素材的文件排版3,我就先贴出css 和 js两个css文件 global.css 是在线演示全局样式的css 在项目中可以不用引用。loading.css也要注意对项目的影响,因为是网上找到,可能有css冗余3.1 global.css@charset "UTF-8";ht..
2020-06-19 10:31:41
1072
原创 设计模式-6.适配器模式
1. 定义:适配器模式的定义是,Convert the interface of a class into another interface clients expect,将某个类的接口转换为接口客户所需的类型。适配器模式解决的问题是,使得原本由于接口不兼容而不能一起工作、不能统一管理的那些类可以在一起工作、可以进行统一管理。将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器。个人觉得这些定义不太容易理解,但是我找到一句话,觉得更符合我对适配器模式的理
2020-06-16 12:17:11
182
原创 支付宝支付回调
1.支付宝回调地址设置在上一篇博客已经记录地址:https://blog.youkuaiyun.com/qq_38669394/article/details/1066714102.支付宝回调方法,最主要两点,一个是如何接受参数,另一个是验签 ,这里需要将支付宝回调的参数转为map @RequestMapping(value = "/alyPayNotify") public String alyPayNotify(HttpServletRequest request, HttpServletR
2020-06-10 19:13:08
8013
原创 H5调起支付宝支付
1.H5调起支付宝支付,我这里是的方法是H5通过访问后端接口,由后台生成一个隐藏的form表单,将form表单作为一个字符串返回给H5,H5将form表单渲染到页面上,通过提交form表单调起支付宝支付。form表单大致是这样的,这里我从别处找到<form name="punchout_form" method="post" action="https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.
2020-06-10 17:55:26
10859
1
原创 微信支付回调
1.微信支付回调地址的设置,在我上一篇H5调起微信支付中已经介绍过了。地址:https://blog.youkuaiyun.com/qq_38669394/article/details/1066377512.微信支付回调是本地服务提供接口,微信调用本地服务的接口,我们接收微信传过来的支付结果。3.注意事项,微信访问我们是以xml格式,这里我多微信传过来的xml格式转为map,然后进入service层进行处理xml转map工具类,后面我会给出来/** * 3-微信异步通知 (签约支付)
2020-06-10 16:02:16
2576
原创 H5调起微信支付
1.下面我说的是h5在小程序内部调取微信支付。微信支付的步骤:参考官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_12.1 查看h5调起微信支付所需参数:这些参数是由 后台请求微信 统一下单 API 获取的请求微信统一下单API:其中有个必填字段通知地址 notify_url 是 String(256) http://www.weixin.qq.com/wxpay/..
2020-06-09 21:19:30
2772
原创 书写mysql语句注意事项
如何写出高质量效率高的sql语句,看完这篇就懂了1.事实上这是我在uc浏览器刷到的,感觉写的很基础,很不错,拷过来记录一下。地址:https://mparticle.uc.cn/article.html?uc_param_str=frdnsnpfvecpntnwprdssskt&btifl=100&app=uc-iflow&title_type=1&wm_id=b8090fc3ae5b454d940d5fb4cb7c7832&wm_cid=357380658252
2020-06-08 19:28:23
645
原创 支付宝回调报错信息 ObjectIdentifier mismatch: 2.16.840.1.101.3.4.2.1
1.最近在做支付宝支付与微信支付,支付宝回调验签不过,发现一个问题 错误信息为ObjectIdentifier mismatch: 2.16.840.1.101.3.4.2.1项目中的sdk中的验签方法:rsaCheckV1(Map<String, String> params, String publicKey, String charset); 只有三个参数而网上给的都是四个参数的形式//计算得出通知验证结果booleanverify_result=...
2020-05-25 17:01:06
2442
原创 号段法-生成唯一标识
一.前言:在分布式高并发环境下,有些时候我们需要生成一些包含业务逻辑性的唯一标识,例如订单编号:可能由业务字符 +当前时间+唯一字符串 : ZFB:(支付宝)+20200505121212+000001,这个时候就我们需要保证在高并发情况下后六位数字不重复。二. 下面我列举几种高并发模式下生成唯一标识的方式:1.利用全球唯一的UUID生成唯一标识。优势是本地生成,不占用宽带,但是id字符串...
2020-05-05 18:39:01
1395
6
原创 Oracle数据库 增删改查 基础sql(适用初级入门学者)
1、创建一张测试表TEST_DEMO CREATE TABLE TEST_DEMO ( ID VARCHAR2(20) NOT NULL PRIMARY KEY, CODE VARCHAR2(20) , NAME VARCHAR(20), ADDRESS VARCHAR2(20) )2、创建序列,作为主键值CREATE SEQUE...
2020-03-12 10:20:38
535
原创 Spring boot 整合redies demo详细介绍
1、redis安装 windows: Redis安装包下载:https://github.com/MicrosoftArchive/redis/releases、 选择自己合适的版本 1)将安装包解压 例如:解压到E:/redis 2)打开cmd下到切换到E:/redis 指令: cd /dE:/redis 然后运行下面代码r...
2020-03-11 15:57:01
236
原创 设计模 式-5.观察者模式
一.基本概念:当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。二。介绍:意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何...
2020-02-24 11:24:11
223
原创 设计模式-4.建造者模式
建造者模式: 建造模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。当构造方法参数过多时使用建造者模式。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,通俗的说就是:建造者模式就是如何一步步构建一个包含多个组成部件的对象,相同的构建过程可以创建不同的产品。1. 简单的构造模式UML类图:...
2020-01-19 15:13:06
192
原创 设计模式-3.策略模式
在讲策略模式之前,我们先看一个日常生活中的小例子: 现实生活中我们到商场买东西的时候,卖场往往根据不同的客户制定不同的报价策略,比如针对新客户不打折扣,针对老客户打9折,针对VIP客户打8折... 现在我们要做一个报价管理的模块,简要点就是要针对不同的客户,提供不同的折扣报价。如果是有你来做,你会怎么做?我们很有可能写出下面的代码:package strategy.exa...
2020-01-17 15:23:52
132
原创 设计模式-2.工厂模式
前言:什么是工厂模式?工厂模式就是将对象的创建交由工厂来实现,程序只管使用其中具体的方法即可。我们为什么要使用工厂模式?1.将对象的创建和对象的使用分开,降低耦合度,提供代码重复利用率;2.后期对于创建对象的修改成本小。虽然工厂模式有这么优势,但是并不是所有的场景都适用于工厂模式。我们总不能把所有的需要创建对象的地方都换成工厂模式吧?那就有点为了使用设计模式而使用工厂模式了。...
2020-01-16 19:17:02
167
原创 redis 实现分布式锁
这里介绍一下:1.从2.6.12版本后, 就可以使用set来获取锁, Lua 脚本来释放锁。setnx是老黄历了,set命令nx,xx等参数, 是为了实现 setnx 的功能。但是,这里还是介绍一下setnx方法实现分布式锁。2.setnx 方法原理使用setnx命令再redis上创建一个key,因为redis的key是不允许重复的,只要谁能够创建成功,谁就能获取锁,没有创建成功的...
2020-01-12 18:02:37
329
Elasticsearch5.4.1 安装配置 +Kibana
2018-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人