自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

向晚歌

追求卓越

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

原创 Jenkins 环境安装与部署

环境准备:JDK1.8Tomcat8.0Jenkins.war下载Jenkins.war官网:https://www.jenkins.io/zh/download/ 中文官网:https://www.jenkins.io/zh/download/1、修改 tomcat 配置conf/tomcat-users.xml<role rolename="admin"/&...

2020-04-29 13:34:00 60

原创 Spring5.1源码编译详解

关于编译源码,作者有以下几点感悟:1、第一次编译是一件很痛苦的事情,会有很多报错,而且每个人遇到的都不一样,所以耐心是关键2、环境最好和笔者保持一致,不然可能出现以下莫名的错误3、多看看报错内容,根据报错重新编译对应的包,或者修改环境配置等杂七杂八的东西4、尽量不要用eclipse编译源码,主要是eclipse需要安装一堆插件,漫长的安装插件是一件极其痛苦的事情编译环境:IDEA 2...

2020-04-27 13:33:00 57

原创 Linux(CentOS7) 环境搭建 Redis5.0.8 集群

本篇文章,阐述从Centos7 min版 ,从0搭建redis集群如果Centos7 最小化安装没有ifconfig这个命令:yum install net-tools安装完成之后安装rz sz 工具 :yum -y install lrzsz将下载好的 redis 安装包和 ruby 安装包上传到linux 解压tar zxvf redis-stable.tar.gz ...

2020-04-16 00:06:00 65

原创 Linux 环境下搭建单机版 Redis

1、下载 redis官方网站 :http://download.redis.io/ 下载安装包redis-stable.tar.gz2、上传到 Linux 环境,存放到任意目录下3、 解压: tar zxvfredis-stable.tar.gz4、编译: make5、 安装:make install PREFIX=/usr/local/redis 6、安装成功之...

2020-04-14 23:52:00 42

原创 为什么要同时重写equals和hashcode方法

废话不多说,先上案例,如下先定义一个User类,并定义2个属性,构造方法,new 2个对象,user1 user2 public static void main(String[] args) { User user1 = new User(1,"张三"); User user2 = new User(1,"张三"); System.o...

2020-04-08 20:33:00 21

原创 使用ThreadPoolExecutor 创建线程池,完成并行操作

日常工作中很多地方很多效率极低的操作,往往可以改串行为并行,执行效率往往提高数倍,废话不多说先上代码1、用到的guava坐标 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifa...

2020-03-26 18:42:00 29

原创 一个简单的通过newFixedThreadPool实现多线程案例

1、异步提交,串行改为并行处理package com.hao.thread;import java.util.ArrayList;import java.util.List;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concu...

2020-03-03 15:05:00 21

原创 Java 获取对象的所有属性及其对应的值

利用反射获取对象的所有属性及对应的值1、获取属性名数组 private static String[] getFiledName(Object o) { Field[] fields = o.getClass().getDeclaredFields(); String[] fieldNames = new String[fields.length];...

2020-01-21 10:14:00 31

原创 分布式id生成方案总结

分布式id生成方案总结https://www.cnblogs.com/wuwuyong/p/12212563.html

2020-01-19 10:23:00 27

原创 使用idea和gradle编译spring5源码

使用idea和gradle编译spring5源码https://blog.csdn.net/baomw/article/details/83956300

2019-12-28 20:17:00 15

原创 idea新建项目出现push rejected如何解决

idea新建项目出现push rejected如何解决https://blog.csdn.net/Carson073/article/details/87934560

2019-12-28 18:57:00 14

原创 快速从2个List集合中找出相同/不同元素

最近刚好涉及到从2个不同集合中找出不同的元素的需求,以下为测试代码1、利用 apache collection 工具内中的方法,附上坐标<dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifact...

2019-12-27 18:37:00 74

原创 Windows 环境下安装RocketMQ

1、环境 JDK1.8 maven2、下载、解压下载地址:http://rocketmq.apache.org/release_notes/release-notes-4.3.0/3、配置环境变量ROCKET_HOME=D:\software\rocketmq-all-4.3.0PATH=%ROCKET_HOME%\bin4、启动 NAMESERVER打开CMD 进入安装 bi...

2019-12-17 00:41:00 14

原创 RabbitMQ java客户端集成 Spring 开发环境

1、在pom.xml文件中引入rabbitmq坐标 <!-- rabbitmq --> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</a...

2019-12-15 23:59:00 12

原创 RabbitMQ 采用java客户端生产消费案例(不集成spring)

1、进入到RabbitMQ的安装根目录下,进入sbin目录,双击 rabbitmq-server.bat 启动 rabbitmq如不会安装rabbitmq ,笔者上一篇文章中有详细介绍 ,附上链接:https://www.cnblogs.com/zhanh247/p/12037760.html双击后 cmd 马上关闭,属于正常现象,在任务管理器中有如下,说明 rabbitmq 是正常运...

2019-12-15 23:51:00 43

原创 Windows 环境下安装搭建 RabbitMQ 教程

1、下载安装 erlanghttps://www.erlang.org/downloads按照默认配置下载安装即可,安装完成之后记得配置环境变量2、下载安装 RabbitMQhttps://www.rabbitmq.com/install-windows.html3、安装完成之后,启动RabbitMQ4、完成之后,在浏览器输入http://localhost:15672...

2019-12-13 23:21:00 17

原创 dubbo 入门案例及 dubbo-admin 平台搭建及使用

写了好多博客,觉得应该以一种通俗的方式去阐述相关案例更贴切一些dubbo是一款非常优秀的分布式开发框架,尤其是传统项目改造成分布式开发部署项目时,改造成本极低,可用性,一致性,容错性 较好下面开始入门案例,本次案例以官方给出的dubbo-demo 作为入门案例,较为便捷,且 贴近实际生产。dubbo官方网站:dubbo.io学习dubbo最佳的方式就是参考官方网站,笔者极力推荐官网,...

2019-12-11 23:59:00 12

原创 maven 常用用操作

安装环境变量,到对应的项目根目录执行打包命令:mvn clean package -Dmaven.skip.test=true

2019-12-11 17:28:00 15

原创 Git 安装使用以及命令详解

一、简介及下载安装Git是目前世界上最先进的分布式版本控制系统作者 Linus Torvalds(林纳斯·托瓦兹)关于git的发展史感兴趣可以自行百度,这里不再详细描述,接下来直接开撸下载地址:https://git-scm.com/downloads 下载对应os版本等即可按照提示选择默认配置下一步,完成即可。二、本地仓库配置及相关操作安装完成后,还需要最后一步设置,在命令行输...

2019-12-10 23:53:00 12

原创 数据库SQL的常用操作

SQL常用操作#新增列;ALTER TABLE appointment ADD COLUMN sell_price decimal(11,2) DEFAULT NULL COMMENT '销售起价';#修改列ALTER TABLE appointment MODIFY UPGRADE_FLAG varchar(1) COMMENT '免费升房Y/N';#删除列ALTER TA...

2019-11-22 11:09:00 11

原创 Java 8 新的日期时间 API

1、LocalDate 使用示例LocalDate localDate = LocalDate.now();// 获取当前年月日LocalDate localDate1 = LocalDate.of(2019, 9, 10);// 构造指定的年月日System.out.println("localDate: " + localDate + " localDate1: " + local...

2019-11-21 10:16:00 14

原创 execute和submit的区别及源码分析

1、execute 方法位于java.util.concurrent.Executor 中void execute(Runnable command);View Code2、execute 的具体实现public void execute(Runnable command) { if (command == null) throw ne...

2019-11-19 11:43:00 13

原创 线程池 ThreadPoolExecutor 实现并行处理

1、定义一个接口Animalpackage com.zh.vo;public interface Animal { void work();}2、定义一个实现类Birdpackage com.zh.vo;public class Bird implements Animal { @Override public void work() {...

2019-11-19 10:14:00 24

原创 windows下安装kafka manager

windows下安装kafka managerhttps://blog.csdn.net/u012374672/article/details/101197023

2019-11-18 09:34:00 12

原创 并发条件下SimpleDateFormat线程不安全及解决方案

1、使用线程池创建并发环境解析日期package com.zh.time;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.concurrent.Callable;import java...

2019-11-15 22:55:00 14

原创 Optional容器类的常用方法

1、容器类的常用方法// 1、Optional.of(T t): 创建一个Optional实例 不能传nullOptional<Employee> op1 = Optional.of(new Employee());// 2、Optional.empty():创建一个空的Optional实例Optional<Employee> op2 = Optional.e...

2019-11-15 22:34:00 14

原创 stream — 归约与收集(五)

1、reduce(T identity,Binaryoperator)/reduce(Binaryoperator)一可以将流中元素反复结合起来,得到一个值。 List<Employee> employees = Arrays.asList(// new Employee(20, "张三", 5000.35, Status.FREE), // ...

2019-11-14 00:49:00 11

原创 stream — 查找与匹配(四)

查找与匹配 List<Employee> employees = Arrays.asList(// new Employee(20, "张三", 5000.35, Status.FREE), // new Employee(40, "李四", 6500.63, Status.BUSY), // new ...

2019-11-14 00:45:00 11

原创 stream — 排序与映射(三)

* map—接收Lambda,将元素转换成其他形式或提取信息。接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。 * FlatMap—接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接成一个流 List<Employee> employees = Arrays.asList(// new Employe...

2019-11-14 00:44:00 11

原创 stream — 筛选与切片(二)

* filter—接收Lambda,从流中排除某些元素。 * 1imit-截断流,使其元素不超过给定数量。 * skip(n)-跳过元素,返回一个扔掉了前n个元素的流。若流中元素不足n个,则返回一个空流,与1imit(n)互补。 * distinct-筛选,通过流所生成元素的hashCode()和equals()去除重复元素。 List<Employee> empl...

2019-11-14 00:41:00 12

原创 stream — 创建stream(一)

1、stream创建// 1、可以通过collection系列集合 stream(串行)、parallelStream(并行)List<String> list = new ArrayList<String>();Stream<String> stream1 = list.stream();// 2、通过Arrays中的静态stream方式创建E...

2019-11-14 00:36:00 10

原创 Lambda表达式的四大内置核心函数式接口

1、消费型接口package com.zh.lambda;import java.util.function.Consumer;import org.junit.Test;/** * @desc Consumer<T>消费型接口 * @author zhanh247 */public class ConsumerTest { @Test pub...

2019-11-12 22:26:00 10

原创 lambda表达式基础语法及其使用

1、无参、无返回值 @Test public void test00() { Runnable r1 = new Runnable() { @Override public void run() { System.out.println("Lambda01.test01().new ...

2019-11-12 22:11:00 16

原创 java 按照固定大小分割 list 集合的几种方式

1、构建一个lis集合类 private static List<Integer> lists = new ArrayList<Integer>(); @Before public void test0() { for (int i = 0; i <= 101; i++) { lists.add(i...

2019-11-12 16:09:00 93

原创 分布式锁相关解决方案

三种实现分布式锁的方式https://blog.csdn.net/wuzhiwei549/article/details/80692278

2019-10-31 16:34:00 12

原创 zabbix3.0 使用详解

Zabbix 3.0 从入门到精通(zabbix使用详解)https://www.cnblogs.com/clsn/p/7885990.html

2019-10-30 14:20:00 12

原创 eclipse Memory Analyzer (mat) 安装及使用

利用MemoryAnalyzer进行OutOfMemoryError的诊断分析https://blog.csdn.net/AlbertFly/article/details/51446943性能分析工具之-- Eclipse Memory Analyzer tool(MAT)(二)https://blog.csdn.net/rachel_luo/article/details/899246...

2019-10-30 11:00:00 16

原创 java7 & java8 内存结构

java7 内存结构http://www.choupangxia.com/2019/10/18/jvm之内存结构详解/java8 内存结构https://www.cnblogs.com/secbro/p/11718987.html

2019-10-22 14:46:00 8

原创 Java 知识汇总

1、Java 中的四种引用https://www.cnblogs.com/death00/p/11718771.html2、mvcchttps://mp.weixin.qq.com/s/Jeg8656gGtkPteYWrG5_Nw3、解决json中存在新增多余字段的问题https://blog.csdn.net/z69183787/article/details/906788294、...

2019-10-22 13:53:00 11

原创 mysql 中 insert on duplicate key update 的用法

处理很多大数据量插入重复数据有唯一键时使用,这种用法只能用于mysql中,其他数据库不适用1、在xml文件中常用写法: <update id="UPDATE_HOTEL_COUNTY_DISTRICT" parameterType="java.lang.String"> INSERT INTO VST_SEARCH_PROD_HOTEL(PRODUCT_...

2019-10-18 09:12:00 22

空空如也

空空如也

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

TA关注的人

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