自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 java添加水印集合

给word, pdf ,img,ppt,excel 添加水印

2023-11-08 14:01:58 148

原创 Nginx负载均衡配置

对Nginx的配置文件进行中文注释,记录Nginx的负载均衡策略,并实例如何使用Nginx 配置负载均衡,

2022-08-19 15:37:57 198 1

原创 mybatis plus自定义拦截器

在实际业务中需要实现机群,特定的查询 ,我们可有通过自定义拦截器去实现

2022-07-26 16:07:14 5504

原创 mysql复杂操作

查询数据库总重复的字段,并删除其中一条

2022-07-06 10:35:13 258

原创 解决服务器编码格式转换问题

/bin/bash^M: bad interpreter: No such file or directory针对在window下 编的脚本到服务器上执行,出现/bin/bash^M: bad interpreter: No such file or directory 这个错误的解决方案。原因: 脚本格式出错,可能是在windows下打开了相关的脚本文件,或者是直接就是在Windows下创建的脚本,这就会导致文件格式变成了 .dos ,而linux 不支持这种格式解决方案:1.下载转换工具y

2020-09-15 16:41:19 500

原创 java 按行读写文件简单示例

java 按行读写文件1、按行写public class CreatFile { public static void main(String[] args) throws Exception { //创建一个文件 String path= "F://Forward.txt"; File file = new File(path); if(file.createNewFile()){ FileWriter f

2020-08-24 11:20:23 2432

原创 JDK8新特性进行编解码(Base64)

JDK8新特性进行编解码(Base64)什么是Base64编码 Base64是⽹络上最常⻅的⽤于传输8Bit字节码的编码⽅式之⼀,Base64就是⼀种基于64个可打印字符来表示⼆进制数据的⽅法 基于64个字符A-Z,a-z,0-9,+,/的编码⽅式,是⼀种能将任意⼆进制数据⽤64种字元组合成字符串的⽅法,⽽这个⼆进制数据和字符串资料之间是可以互相转换的,在实际应⽤上,Base64除了能将⼆进制数据可视化之外,也常⽤来表示字串加密过后的内容。1.早期java要使⽤Base64的方式使⽤JDK⾥su

2020-08-21 17:10:45 1069

原创 Maven打jar包并执行指定的main方法

Maven打jar包并执行指定的main方法在pom.xml中添加如下代码即可实现运行指定的main方法。 <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> &

2020-08-13 13:28:51 3320

原创 java 收发邮件(带附件发送和附件解析)

java 收发邮件(带附件发送和附件解析)1.java 发送邮件收发邮件所需要的jar包。 <dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.6.2</version> </depend

2020-08-13 11:54:08 2052

原创 Netty系列(三)java NIO 编程 第二部分

Netty系列(三)java NIO 编程 第二部分1.Selector(选择器)1.1 基本介绍1)Java 的 NIO,用非阻塞的 IO 方式。可以用一个线程,处理多个的客户端连接,就会使用到Selector(选择器)2)Selector 能够检测多个注册的通道上是否有事件发生(注意:多个Channel以事件的方式可以注册到同一个Selector),如果有事件发生,便获取事件然后针对每个事件进行相应的处理。这样就可以只用一个单线程去管理多个通道,也就是管理多个连接和请求。3)只有在 连接/通道

2020-08-03 17:13:09 118

原创 Netty系列(三)java NIO 编程 第一部分

Netty系列(三)java NIO 编程1.NIO 基本介绍1)Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的2)NIO 相关类都被放在 java.nio 包及子包下,并且对原 java.io 包中的很多类进行改写。3)NIO 有三大核心部分:Channel(通道),Buffer(缓冲区), Selector(选择器)4)

2020-07-29 14:17:45 140

原创 Netty系列(二)Java BIO编程

Netty系列(二)Java BIO编程1. I/O模型基本说明1)I/O 模型简单的理解:就是用什么的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。2)java共支持3种网络编程模型/IO模式:BIO、NIO、AIO3)java BIO: 同步并阻塞,服务器实现模式为一个链接一个进程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接没有任务处理则会造成不必要的线程开销。4)java NIO:同步非阻塞,服务器实现模式为一个线程处理多个请求(链接),即客户端发送的

2020-07-29 11:22:55 148

原创 Netty系列(一)Netty介绍和应用场景

Netty系列(一)Netty介绍和应用场景写在前面:本文将完整记录自己学习Netty的过程,也希望通过这次尝试写好一个专栏,也算是对新的的学习方式的尝试吧。希望能够给自己或者他人提供一点帮助。如果文章中有错误的地方还请大家指出,我好及时改正。谢谢!加油!1. Netty介绍1)Netty是由JBOSS提供的一个Java开源框架,现为GitHub上的独立项目。2)Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序。3)Netty主要针对TCP协议下,面向

2020-07-29 10:18:25 397

原创 好长的一篇java多线程笔记

多线程是Java最基本的一种并发模型,本文将详细介绍Java多线程编程。

2020-07-24 15:07:47 136

原创 StringUtils中的字符串判空

java 判空判空操作在我们工作用过是比较常用的一个操作,commons-lang3这个包为我们提供了两个判空的方法,分别是StringUtils.isEmpty(CharSequence cs)和StringUtils.isBlank(CharSequence cs),那有什么区别呢?

2020-07-22 15:48:50 722

原创 利用建设者模式告别传统的setter

让我们拥抱变化,利用java的设计模式,提升我们代码的逼格。

2020-07-16 10:41:01 160

原创 kafka入门到实战系列(二) kafka安装与命令行操作

kafka的安装1.安装包的下载下载地址:http://kafka.apache.org/downloads.html2.通过xshell,xftp工具将安装包上传到服务器想要安装的目录(这里只是一个文件的上传就不在演示了)3.解压安装包解压命令:$ tar zxvf kafka_2.11 0.11.0.0.tgz4.修改文件名命令:$ mv kafka_2.11 0.11.0.0/ kafka5.在kafka的安装目录下创建logs文件夹 实现日志数据分离命令:$ mkdir logs

2020-07-14 10:01:24 129

原创 Storm入门小Dome

Storm如何小Dome(本地实现)1.什么是Apache Storm?Apache Storm是一个分布式实时大数据处理系统。Storm设计用于在容错和水平可扩展方法中处理大量数据。它是一个流数据框架,具有最高的摄取率。虽然Storm是无状态的,它通过Apache ZooKeeper管理分布式环境和集群状态。它很简单,您可以并行地对实时数据执行各种操作。2.Apache Storm核心概念Apache Storm从一端读取​​实时数据的原始流,并将其传递通过一系列小处理单元,并在另一端输出处理/有

2020-07-01 14:39:47 163

原创 kafka入门到实战系列(一)kafka概述

该系列文章将完整记录kafka学习的全过程,重理论到实践,希望对大家有所帮助,同时也是对自己学习的一个总结和回顾。

2020-06-19 09:53:29 167

原创 kafka javaAPI无法生产和消费消息,控制台可以

kafka javaAPI无法生产和消费消息,控制台可以的解决方法问题:通过命令行工具(kafka-console-producer.sh和kafka-console-consumer.sh)是能够相互通信的,producer发布的信息consumer能够接收到。但是java通过kafka-client的API写的代码始终不能跟kafka通信:java producer的消息发不出去, java comsumer也收不到任何消息。仔细检查了下代码中IP、端口都没有写错。解决方案:将kafka/confi

2020-06-18 10:11:56 1333 3

原创 netty入门(整合springboot)

netty 入门什么是netty?Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API的客户端/服务器框架。Netty 提供高性能和可扩展性,让你可以自由地专注于你真正感兴趣的东西,你的独特的应用!2.推荐阅读书籍:netty实战阅读地址:https://waylau.gitbooks.io/essential-netty-in-action/3.springboot 整合netty1.引入pom.xml <!-- netty-->

2020-06-08 16:13:35 416

原创 redis工具类(springboot)

优化RedisTemplate的接口使用如果我们在代码中直接调用RedisTemplate中的方法,链路会比较长,代码可读性不强,故我对其进行了一系列的封装,简化操作package com.hzm.myproject.redis;import clojure.lang.Obj;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisT

2020-06-05 16:27:16 238

原创 完善的java后台参数校验(包含单个参数校验,对象校验)

java后台参数校验一. 单个参数的校验方式实现原理:@ControllerAdvice,@Validated注解对参数进行校验实现方式:1.创建统一的系统常量package com.hm.middle_service.common;/** * @Author:huangzhimin * @Date:2020/6/2 描述:系统编码 **/public class CodeConst { /** * 操作成功编码 */ public static f

2020-06-04 10:52:47 4884

原创 多线程学习笔记(六)线程的安全性问题

什么是线程安全性?   当多个线程访问某个类,不管运行时环境采用何种调度方式或者这些线程如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类为线程安全的。----《并发编程实战》 什么是线程不安全? 多线程并发访问时,得不到正确的结果。从字节码角度剖析线程不安全操作 (解析i++的过程) javac -encoding UTF-8...

2019-09-20 15:48:00 21

原创 多线程学习笔记(五)守护线程

线程分类 用户线程、守护线程 守护线程:任何一个守护线程都是整个程序中所有用户线程的守护者,只要有活着的用户线程,守护线程就活着。当JVM实例中最后一个非守护线程结束时,也随JVM一起退出 守护线程的用处:jvm垃圾清理线程 建议: 尽量少使用守护线程,因其不可控 不要在守护线程里去进行读写操作、执行计算逻辑守护线程创建的方法:  在创建一个普通线程以后将Daem...

2019-09-20 11:36:00 15

原创 多线程学习笔记(四)线程的优先级

线程的优先级告诉程序该线程的重要程度有多大。如果有大量线程都被堵塞,都在等候运行,程序会尽可能地先运行优先级的那个线程。 但是,这并不表示优先级较低的线程不会运行。若线程的优先级较低,只不过表示它被准许运行的机会小一些而已。 线程的优先级设置可以为1-10的任一数值,Thread类中定义了三个线程优先级,分别是: MIN_PRIORITY(1)、NORM_PRIORITY(5)、MAX_PR...

2019-09-20 11:25:00 13

原创 多线程学习笔记(三)线程的中断

执行中断的三种方法1.stop() 废弃方法,开发中不要使用。因为一调用,线程就立刻停止,此时有可能引发相应的线程安全性问题2.Thread.interrupt方法3.自行定义一个标志,用来判断是否继续执行实例一:使用stop中断线程public class StopDome implements Runnable{ @Override public void run()...

2019-09-20 10:51:00 10

原创 多线程学习笔记(二)线程的挂起跟恢复

什么是挂起线程?   线程的挂起操作实质上就是使线程进入“非可执行”状态下,在这个状态下CPU不会分给线程时间片,进入这个状态可以用来暂停一个线程的运行。   在线程挂起后,可以通过重新唤醒线程来使之恢复运行 为什么要挂起线程?   cpu分配的时间片非常短、同时也非常珍贵。避免资源的浪费。 如何挂起线程?   被废弃的方法     thread.suspend()...

2019-09-20 10:38:00 53

原创 多线程学习笔记(一)线程的创建

多线程的五种创建方式。第一种:通过继承Thread类public class CreateThread01 extends Thread{ @Override public void run(){ //在run方法中实现要实现的业务逻辑 System.out.println(Thread.currentThread().getName());...

2019-09-20 09:59:00 8

原创 关于一些java面试题的思考--数据库篇

在面试中数据库也必定是一个重要的知识点。以下总结一些在面试中数据库碰到的问题。(1)数据量较大时,如何做优化?  答:1.建立索引,首先应考虑在 where 及 order by 涉及的列上建立索引,提升数据库的查询效率。    2.分区,将一大表,根据条件分割成若干个小表,可以改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。    3.分表(例如:对于订单表可以...

2019-09-06 16:41:00 7

原创 关于一些java面试题的思考--java集合篇

第一题:对java集合的了解?答:常见集合如下图所示集合中一些常考题:(1)HashMap 和Hashtable的区别有哪些?  答:hashMap 没有考虑线程同步,是线程不安全的,hashtable使用了Synchronize关键字,是线程安全的。同事前者允许null作为key;后者不允许null作为key(2)HashMap的底层实现?  答:在java8之前,其底层实现是数...

2019-09-06 15:03:00 11

原创 本地Springboot项目打包成docker镜像并上传到云仓库的全流程

本文用于记录将自己开发的springboot运用打包成docker镜像1.创建一个属于自己的springboot的运用能够正常访问的2.利用IDEA 打包成为jar包(如图所示)3.创建一个Dockerfile(注:Dockerfile没有后缀名)Dockerfile中的内容如下FROM openjdk:8-jdk-alpineVOLUME /tmpARG docker-dem...

2019-08-30 10:56:00 13

原创 vue 组件开发到发布到npm全流程

一:搭建vue项目  封装vue的插件用webpack-simple比较合适,vue init webpack-simple <project-name>二:创建组件  在src 目录下创建lib 文件夹 用于存放不同的组件,且在为每个组件创建一个文件夹,在该文件夹目录下存放要发布的组件和index.js 用于将组件导出 注:vue-tool.vue 内容是传统...

2019-07-25 11:27:00 11

原创 mkdirs和mkdir的区别

mkdirs()可以建立多级文件夹,mkdir()只会建立一级的文件夹,如下:newFile("/A/B/C/D").mkdirs();执行后,会建立A/B/C/D四级目录newFile("/A/B/C/D").mkdir();则不会建立任何目录,因为找不到/B/C/D目录,结果返回false...

2019-04-02 15:59:00 21

原创 java 打包的两种方式

一.利用java 自带的util.zip 将多个文件打包在一个文件夹之中import java.io.*;import java.util.ArrayList;import java.util.List;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;public class CreateZip...

2019-04-02 10:30:00 20

原创 复制文件

public class IOTest { public static void main(String[] args) { File file = new File("D:\\IoTest"); if(!file.exists()){ //如果不存在则创建文件夹 file.mkdir();//创建文件夹 }els...

2019-04-02 10:25:00 9

原创 通过git将本地代码上传码云

什么是码云?码云是开源中国社区2013年推出的基于 Git 的完全免费的代码托管服务,这个服务是基于 Gitlab 开源软件所开发的,在 Gitlab 的基础上做了大量的改进和定制开发,目前已经成为国内最大的代码托管系统,致力于为国内开发者提供优质稳定的托管服务。什么是git?Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus...

2019-02-14 09:43:00 13

原创 vue学习记录(一)环境的搭建

vue是一种新颖的前端框架,具体的信息就不一一介绍了,想要了解详情的请自行移步官网 https://cn.vuejs.org/,本文重点是vue环境的搭建。第一步:安装node.js     至于node.js的作用是下载搭建vue环境所需要的一系列文件 node.js官网:https://nodejs.org/en/    node.js的安装也极其简单,在官网上下载安装包,后点击安...

2019-01-21 16:01:00 12

原创 Java 反射解析指定jar包出现ClassNotFoundException异常,处理方式

在上篇博文中写道,通过Java的反射机制解析了指定的jar包,得到了其中的全类名,方法名,参数名,但是也许有的博友在使用时应该会发现存在一点问题。问题就是在解析简单的接口案例时可以完整的解析,但是如果解析复杂的jar包时出现ClassNotFoundException的异常。那么何为复杂的Jar包?我们平时写的小DOme,基本上依赖就JDK的jar包就可实现,但是当我们项目中引入其他的依赖jar...

2017-03-30 09:10:00 77

原创 读取指定jar包 解析jar包中所有的类(获取到类的方法和属性)

import java.io.File;import java.io.IOException;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.net.URL;import java.net.URLClassLoader;import java.util.Enumeration;i...

2017-03-03 14:30:00 32

netty完整代码示例

Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API的客户端/服务器框架。Netty 提供高性能和可扩展性,让你可以自由地专注于你真正感兴趣的东西,你的独特的应用!

2020-06-08

RedisUtils.java

如果我们在代码中直接调用RedisTemplate中的方法,链路会比较长,代码可读性不强,故我对其进行了一系列的封装,简化操作。 本资源主要解决三点内容:1.在springboot项目中集成redis,2.封装redis工具类,3.解决创建乱码问题。

2020-06-05

myproject.zip

java实现参数验证的完整案例,包含单个参数校验,对象校验等,规范化的返回结果集,其中集成了swagger接口文档,Druid数据库连接池等

2020-06-04

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

TA关注的人

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