自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (4)
  • 收藏
  • 关注

原创 fork/join的使用

CPU密集型(CPU-bound)CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。 在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计算圆周率至小数点一千位以下 的程序,在执行的过程当中绝大部份时间用在三角函数和开根号的计算,便是属于CPU boun

2021-06-30 18:11:36 1205 1

原创 Executor线程池原理与源码解读

线程线程是调度CPU资源的最小单位,线程模型分为KLT模型与ULT模型,JVM使用的KLT模型,Java线程与OS线程保持1:1的映射关系,也就是说有一个java线程也会在操作系统里有一个对应的线程。Java线程有多种生命状态NEW,新建RUNNABLE,运行BLOCKED,阻塞WAITING,等待TIMED_WAITING,超时等待TERMINATED,终结线程状态切换图线程池在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个

2021-06-28 10:59:12 175

原创 深入理解JVM

推荐一个大佬写的文档,写的确实不错,也可以参考周志明先生在《深入理解 Java 虚拟机》https://snailclimb.gitee.io/javaguide/#/docs/java/jvm/JVM%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6

2021-04-22 11:32:22 124

原创 ThreadPoolExecutor使用详解

1. 通过Executors创建线程池的弊端在创建线程池的时候,大部分人还是会选择使用Executors去创建。下面是创建定长线程池(FixedThreadPool)的一个例子,严格来说,当使用如下代码创建线程池时,是不符合编程规范的。ExecutorServicefixedThreadPool=Executors.newFixedThreadPool(5);原因在于:(摘自阿里编码规约)线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor...

2021-04-07 10:04:00 291

原创 自定义类加载器

1.大概讲下四种类加载器《1》引导类加载器 主要是加载jdk下面的jre中的核心包《2》扩展类加载器(ExtClassLoader)加载jdk下ext包下的核心包《3》应用程序类加载器(AppClassLoader)加载我们自已写的应用程序《4》自定义类加载器 (类加载机制的实质就是调用ClassLoader类中的findClass())2.手写一个自定义类加载器package com.lz.md.test;import java.io.FileInputStream;...

2021-04-04 00:02:59 75

原创 Logstash之MySQL做数据同步 报错记录

1.首先说明的是 ES采用UTC 时区,比北京时间早8小时,所以ES读取数据时让最后更新时间加8小时(后半句错误说法)where timestamp > date_add(:sql_last_value,INTERVAL 8 HOUR) 我用的logstash-input-jdbc版本是4.3.9 ,ES采用UTC 时区,比北京时间早8小时,这点是没有问题的,但是在插件在取最后的时间已经默认加上8小时了,所以我们不需要加2.最无语的一个bug,就是做数据同步启动不了Logs...

2021-01-25 16:33:05 270

原创 vue-devtools安装报错

1.环境准备工作1》要安装node.js,node.js中有npm,不需要额外的安装npm,还需要安装webpack,webpack依赖webpack-cli ,高版本没有内置,需要手动安装2》去github上下载源码https://github.com/vuejs/vue-devtools2.安装github上安装步骤如下:Make sure you are using Node 6+ and NPM 3+Clone this repo npm install(Orya...

2021-01-21 10:40:55 237

原创 SpringTask 并行任务的实现

引入:一般在项目中会有多个定时任务去调度,这时候如果使用串行的定时任务会造成结果不准确,具体解决方案如下:在config文件夹中引入如下配置类,不需要在springboot启动类添加@EnableScheduling这个注解/** * @author lz * @Description: springTask 并行任务执行方法 **/@Configuration@EnableSchedulingpublic class AsyncTaskConfig implements Schedu

2021-01-18 16:45:13 412

原创 redisson 实现分布式锁

1.引入redisson依赖 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.5.4</version> </dependency>2.自定义注解实现redisson分布式锁/** * @Description: 基于注解的分布式式锁 *

2021-01-18 15:59:45 336

原创 分布式事务介绍

1、什么是分布式系统部署在不同结点上的系统通过网络交互来完成协同工作的系统。比如:充值加积分的业务,用户在充值系统向自己的账户充钱,在积分系统中自己积分相应的增加。充值系统和积分系统是两个不同的系统,一次充值加积分的业务就需要这两个系统协同工作来完成。2、什么是事务事务是指由一组操作组成的一个工作单元,这个工作单元具有原子性(atomicity)、一致性(consistency)、隔 离性(isolation)和持久性(durability)。原子性:执行单元中的操作要么全部执行成功,要

2021-01-15 09:30:18 75

原创 SQL Server字符串切割函数

SQL Server中把一个字符串切割成多个数据函数CREATE FUNCTION SplitStringToTable ( in Input VARCHAR(MAX(VARCHAR)) , -- 输入切割的字符串 in Separator VARCHAR(MAX(VARCHAR)) = ',' -- 切割标识 )RETURNS out TABLE TABLE ( Id INT IDENTITY(1, 1) , -- 返回一个表有i

2021-01-12 14:18:38 677

原创 @Component注解部分场景不生效问题

1.出现问题的原因:@Component这个注解把该类注入到spring容器中了,但是在拦截器之中不生效,再在Utils使用到dao,我们就不能直接注入了解决方案:使用ApplicationContextAware解决问题。而ApplicationContextAware实现了这个接口的bean,当spring容器初始化的时候,会自动的将ApplicationContext注入进来2 案例demo/** * @author zhenglong * @Description:解决部分@Co.

2020-12-29 11:04:18 5781

原创 logback日志文件记录

1.加入logback配置xml<?xml version="1.0" encoding="UTF-8"?><configuration debug="false" scan="false"> <springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue="logs"/> <property

2020-12-03 14:32:25 158

原创 DESC结合Aop对铭感数据注解式加解密

1.引入aop依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>2.自定义注解,使用Aspect 对传入数据加密,出参解密/** * @author zhenglong *

2020-11-27 09:39:27 176

原创 OWASP插件的使用

1.介绍:Dependency-Check更方便的知道哪些jar存在高危漏洞,进而进行安全升级2.官网下载地址:https://www.owasp.org/index.php/OWASP_Dependency_Check3.下载完以后解压:把如下plugins.zip解压到到此插件的bin目录下;如下图: 4.上图中标注出来的创建快捷方式;将快捷方式剪切并粘贴到%appdata%\Roaming\Microsoft\Windows\SendTo目录下5.找到本地lib文件夹下的...

2020-11-23 17:19:56 582 2

原创 java 保存操作日志的实现

1.加入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>1.1.因为springboot是自动开启aspect代理的,所以不需要加 @EnableA..

2020-11-23 16:42:37 1754

原创 redis集群搭建

基于docker搭建redis集群准备工作服务端口服务器容器名Redis-master16379120.55.164.91Redis-master1Redis-master26380120.55.164.91Redis-master2Redis-master36381120.55.164.91Redis-master3Redis-slave16382120.55.164.91Redis-...

2020-11-02 16:17:04 59

原创 MySQL------存储过程

存储过程和函数都是事先在数据库中经过执行一段sql语句的集合,存储过程没有返回值,而函数必须有返回值,使用存储过程可以减少数据在数据库和应用服务器之间的传输,简化开发人员的工作。 创建存储过程 CREATE PROCEDURE pro_name() BEGIN ---sql语句 END; 2.1 调用存储过程call pro_name(); 2.2 删除存储过程DROP PROCEDURE IF EXISTS pro_name ;3.存储过程...

2020-09-16 17:37:44 95

原创 MySQL-----触发器

触发器定义:触发器是有关表的数据库对象,指的是在update/insert/delete操作之前或之后,会执行在触发器其中定义的sql语句集合,可以用来日志记录,数据的校验等。1.创建触发器:create trigger trigger_name before/after insert/update/deleteon table-name for each rowbeginsql 语句end;2.删除触发器:drop trigger trigger_n...

2020-09-10 11:45:12 192

原创 MySQL---视图

视图的定义: 视图是一种虚拟的表,在数据库中并不是真实存在的,简单的来说,视图就是一组查询sql返回的结果集合。视图的优点:简单:使用视图的用户只需要查询视图返回对应的结果,不需要具体关注多张表之间的对应关系,以及查询条件。安全:使用视图的用户只能只能查到视图中返回的结果集合,并不能访问到表的具体行和列。数据独立:源表增加了列,并不会影响视图的结果,源表修改了部分列,视图中作对应的修改即可,并不会对访问者有影响。1.创建视图sql 语句create or replace v...

2020-09-10 00:25:11 67

原创 MySQL ----索引

1:索引的定义: 索引是帮助MySql高效获取数据的有序数据结构,在数据库系统维护数据之外,还维护着满足特定算法的数据结构,这种数据结构以某种的特定的方式指向数据,这样就可以在这些数据上实现高级算法,这就是索引。2:索引的优缺点 2.1 索引类似于书籍的目录,提高数据的查询速度,降低数据库的IO 2.2 通过索引对数据进行排序,降低数据库排序成本,降低cpu消耗 2.3 索引实际上可以算作一张保存了主键和指向实体类的一些记录,需要占用物理空间 2.4 索引同时会降低操作数...

2020-08-28 10:12:22 280

原创 tomcat 非法关闭端口占用

1 netstat -ano2 taskkill /f /t /im 【pid】

2020-08-06 17:24:23 86

原创 jvm 优化篇

0jinfo查看jvm运行参数jps 查看java进程jinfo -flags 6219 查看jvm运行参数jstat -gc 6219 查看垃圾回收统计(jstat -compiler 6219 查看编译统计)1 查看内存使用情况 jmap -heap 6219 6219是对应jvm的进程号2 内存使用情况dump到对应文件中(通过mat工具可以对文件进行分析) jmap -dump:format=b,file=/tmp/dump...

2020-07-29 17:37:37 100

原创 JDK堆内存模型

1 jdk1.7堆内存模型1.1 Young 年轻区(代)Young区被划分为三部分,Eden区和两个大小严格相同的Survivor区,其中,Survivor区间中,某一时刻只有 其中一个是被使用的,另外一个留做垃圾收集时复制对象用,在Eden区间变满的时候, GC就会将存活的对 象移到空闲的Survivor区间中,根据JVM的策略,在经过几次垃圾收集后,任然存活于Survivor的对象将被移 动到Tenured区间。 1.2Tenured 年老区 ...

2020-07-29 16:57:28 160

原创 SpringBoot 启动原理源码跟踪

1 Springboot 启动主要是由@SpringBootApplication 这个注解来完成的,而 @SpringBootApplication 由以下几个注解组成这里面有三个核心注解,那就是@SpringBootConfiguration配置注解和@EnableAutoConfiguration注解和@ComponentScan注解1.1 先来看@SpringBootConfiguration 配置注解其实就用了@Configuration 这个注解来配置的组件1.2 @C...

2020-07-06 16:32:29 293

原创 java Face++ 后台工具类的封装

package com.example.demo.config;import javax.net.ssl.SSLException;import java.io.*;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import java.util.*;/** * @author zhenglong * @Description:face++工具类 * @Date 2.

2020-06-04 10:16:28 169

原创 阿里云部署nginx

https://blog.csdn.net/qq_32953079/article/details/81975160

2019-11-10 20:06:12 203

原创 nested exception is org.apache.ibatis.binding.BindingException: Parameter 'startDate' not found.

这个错误是 @Param包导入错误

2019-09-17 09:42:50 1021

原创 layui table toolbar修改状态

2019-09-06 10:55:15 2105

原创 layui 下拉列表选中

var select = 'dd[lay-value=' + status + ']'; $('#powerUpStatus').siblings("div.layui-form-select").find('dl').find(select).click();

2019-09-06 10:51:20 333

原创 list集合分页

public static List<StatisticsDev> listPage(List<StatisticsDev> dataList, int currentPage,int pageSize) { List<StatisticsDev> currentPageList = new ArrayList<>(); ...

2019-09-05 16:41:00 93

原创 layui实现季度选择

var dateParm = '' lay('#version').html('-v' + laydate.v); $Date = laydate; //季节选择 renderSeasonDate(document.getElementById('date'), 1); /** * 季度初始化 * @param ohd 季度input dom对象非jquery对象 ...

2019-09-05 16:38:57 2047

原创 linux centos7.3部署svn

1.我不想写了,给出大神的连接,我试过,没问题https://help.aliyun.com/document_detail/52864.htmlhttp访问模式的时候没有权限 在authz中加入就可以了 [/]suzhan=rw ...

2019-08-02 17:36:43 125 4

原创 文件上传和下载

1.文件上传前端用fileupload后端这样上传到服务器/** * @author zhenglong * @Description: 巡检任务的上传 * @Date 2019/6/26 13:21 */@RestControllerpublic class UploadExcelController extends HttpServlet { @Value("${up...

2019-07-30 11:07:57 197

原创 获取后台传的参数

1 获取后台传参数 //获取后台的参数 function getQueryString(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'); var r = window.location.search.substr(1).match(reg); if(r != null...

2019-07-30 10:57:32 311

原创 微信扫一扫调用

1去微信公众平台配置2 controller中的方法 (没有工具类的参考我另一篇)https://blog.csdn.net/qq_42917455/article/details/97751644/** * 调用微信二维码的方法 * @param request * @return * @throws Exception */ ...

2019-07-30 10:48:45 406

原创 微信公众号之服务器的接入

1 weixinUtils是给微信服务器发送消息,以及token的校验和ticket的校验public class WeiXinUtil { private static final String APPID = "你的APPID"; private static final String APPSECRET = "你的密钥"; private stat...

2019-07-30 10:33:59 312

原创 阿里云安装tomcat坑

1 tomcat访问不到 查看是否有多个进程ps -ef | grep tomcat kill -9 --(对应的id)2 防火墙是否开放端口firewall-cmd --permanent --zone=public --add-port=8080/tcp (开放端口)开放端口之后,一定要重新加载firewalld配置firewall-cmd --permanent...

2019-07-09 00:21:56 134

原创 LayUI table 复选框点击传值

layui.config({ base: '../../js/'}).extend({ userApi: 'api/userApi',});layui.use(['form', 'layer', 'userApi', 'table', 'laytpl'], function() { var form = layui.form, layer = parent.layer === ...

2019-06-30 09:16:55 1947

原创 layui中ifream页面显示不完全

<iframe src="page/control/content.html" id="fistHtml" width="100%" style="height: 94%;" frameborder="0" scrolling="yes"></iframe> 可能是scrolling没有设置成yes <body class="childre...

2019-06-23 19:55:05 1360 1

ll-win32-x64.rar

简易计算器

2021-01-25

Linux centos7

centos7安装一些基本开发工具,同时中还附带关于linux的一些基本命令

2018-11-10

猜数字小游戏

猜四位数字的小游戏,有助于开发脑活动,上面有源码奥

2018-10-07

今日头条前台页面

自己为了练习项目,把今日头条的页面弄下来,只是些静态页面, 功能没有实现, 适合练手,提高自己的能力

2018-10-03

空空如也

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

TA关注的人

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