自定义博客皮肤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)
  • 资源 (4)
  • 收藏
  • 关注

原创 述职报告模板

述职报告模板

2024-03-15 10:33:25 233

原创 国内外手机号码正则

国内外手机号码正则

2023-05-18 14:24:46 445

原创 日期操作工具类

日期操作工具类

2023-01-16 10:03:18 170

原创 图解Java设计模式

要理解设计模式,离不开日常总结和思维导图。

2022-07-06 09:48:30 277

原创 MySQL8中的11个窗口函数

MySQL8窗口函数总结及简单实用

2022-06-16 11:05:00 486

原创 Java排序算法

Java排序算法

2022-03-11 23:09:35 578

原创 数组中出现次数超过一半的数字

/** * 需求: * 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 * 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 * <p> * 示例 1: * <p> * 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] * 输出: 2 * 限制: * <p> * 1 <= 数组长度 <= 50000 ...

2022-01-18 19:19:07 249

原创 Elasticsearch分页的坑

1.from + size传统的from+size的方法在数据量小时,客户端获取要求有顺序时可以使用。2.scroll + scan在数据量太大,尤其是需要遍历全部数据时,应该使用这种方式。原因:假设每页大小为10,在获取第1001页时,es实际上是向每个分片发送请求第10000到10010的数据,每个分片会进行一次排序,如果有十个分片,就会获取所有分片的前10个,因此给CPU和内存造成很大的压力。使用scroll方式,es生成一个快照,并维护一个scroll_id,相当于一个索引下标,这个id有个

2022-01-06 14:45:48 980

原创 百度智能云文字转语音

使用百度智能云文字转语音服务还是蛮简单的,很容易上手1.创建应用首先要做的就是进入百度智能云后台界面,创建一个应用,复制API Key和Secret Key到我们的应用当中百度智能云后台管理中心2.编写文字转换语音工具类import lombok.experimental.UtilityClass;import java.io.File;import java.io.FileOutputStream;import java.net.HttpURLConnection;import

2021-11-22 15:47:27 3370 2

原创 后台防重复点击实现方案

后台防止重复点击的实现方案比较多,这里介绍的是利用Spring的Aspect来实现接口防重点击。话 不多说,直接附上代码1、配置自定义注解import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 重复点击的切面 * * @a

2021-07-09 11:17:32 2349 3

原创 MySQL按照字母及数字升序排列

1.定义一个函数,在MySQL中运行后,Java程序就可以直接调用这个函数了CREATE FUNCTION `Num_char_extract`(Varstring VARCHAR(100)CHARSET utf8, flag INT) RETURNS VARCHAR(50) CHARSET utf8BEGIN DECLARE len INT DEFAULT 0; DECLARE Tmp VARCHAR(100) DEFAULT ''; SET len=CHAR_LENGTH(Varstring)

2021-06-28 15:54:39 1014

原创 使用SpringBoot/Aspect实现日志埋点

在开发过程中,可能会遇到需要记录用户操作记录的情况,这时候可以使用Spring的AOP实现日志埋点,记录用户的操作行为实现步骤:1.日志记录注解(使用时直接添加到需要记录的方法上)package com.immo.jkzs.annotation;import com.immo.jkzs.enums.OperationType;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;impor

2021-06-01 16:48:56 2259 2

原创 Java使用华软通信能力平台实现短信发送

根据项目及客户需求,集成华软通信短信网关,实现短信发送功能,具体实现流程如下如下:1、登录华软通信能力平台,配置相关免审核短信模板在配置的时候,需要注意的是,如果短信内容中包含有敏感字符,比如“冻结”、违规、涉嫌…需要将内容隔开一点,“冻结”应该改为“冻 结”,“涉嫌”改为“涉 嫌”。提交本公司相关资质证明材料后,华软通信后台管理员审核通过就可以使用相关模板进行断线发送了。补充说明:s表示支持的最多字符个数,例如s6就是短信内容最多可以包含6个字符模板中的字符统一使用中文字符,不要使用英文状态

2021-03-26 14:28:38 269

原创 解决网页微信扫码登录报40163

1、问题描述:大家在做微信扫码登录时,可能会遇到40163的错误,具体报错如下:{“errcode”:40163,“errmsg”:"code been used}。网上对于这个问题的说法千差万别,但都没有一个好的解决方法。经过调试检查,最终找到了问题所在2、前期准备:要完成微信扫码登录功能,要先注册相关账号,拿到应用的appId和secret,配置好外网可以访问的网址(授权回调地址)。注意授权回调地址,不能简单使用用回调方法(例如: /api-uaa/oauth/wechat/callback),

2021-03-10 11:41:58 15221 2

原创 SpringBoot反序列化Date类型失败解决方案

1、问题排查出现的场景:服务端通过springmvc写了一个对外的接口,返回一个json字符串,其中该json带有日期,格式为yyyy-MM-dd HH:mm:ss客户端通过feign调用该http接口,指定返回值为一个Dto,Dto中日期的字段为Date类型客户端调用该接口后抛异常了。异常如下:feign.codec.DecodeException: JSON parse error: Can not deserialize value of type java.util.Date from

2021-01-18 09:08:09 5757 1

原创 maven命令的方式

使用Maven命令方式:一、Terminal 命令方式例如:mvn dependency:tree二、Edit Configurations 方式新增一个 Maven 配置,Command line 输入命令。参考文章:https://blog.csdn.net/Zheng_xiao_xin/article/details/80732865https://www.cnblogs.com/not-alone/articles/7802966.html常用命令:复制代码mvn -v //查看

2020-09-15 23:02:43 484

原创 基于pinyin4j封装的拼音操作工具类

pinyin4j是一个开源的流行java库(官网地址:http://pinyin4j.sourceforge.net/,在线文档:http://pinyin4j.sourceforge.net/pinyin4j-doc/ ),使用来处理中文转换成拼音(汉语拼音,罗马拼音等),功能强大。有几个常用的类:net.sourceforge.pinyin4j.PinyinHelper;net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;net.sourcef

2020-09-14 17:20:46 400

原创 高效分布式ID生成算法

在分布式系统中经常会使用到生成全局唯一不重复ID的情况一、 常见实现方式:1、通过DB做全局自增操作优点:简单、高效缺点:大并发、分布式情况下性能比较低2、获取当前时间纳秒或毫秒数这种方式需要考虑的是在分布式集群中如果保证唯一性。3、类似UUID的生成方式生成的串比较大二、基于Snowflake算法优化实现64位自增ID算法其中解决时间回拨问题的优化方案如下:如果发现当前时间少于上次生成id的时间(时间回拨),着计算回拨的时间差如果时间差(offset)小于等于5ms,着等待 of

2020-09-14 17:05:47 243

原创 ElasticSearch的基本操作(简单易懂)

GET _search{“query”: {“match_all”: {}}}一、索引库操作#1.1 新增索引库PUT /kwgmall#1.2 查看索引库GET /kwgmall#1.3 删除索引库DELETE /tdyt二、配置映射信息2.1PUT /kwgmall/goods/_mapping{“properties”: {“title”:{“type”: “text”,“analyzer”: “ik_max_word”,“index”: true,“sto

2020-09-12 00:16:44 265

原创 ElasticSearch的脑裂问题简析

一、概述一个正常ElasticSearch集群中只有一个主节点,主节点负责管理整个集群,集群的所有节点都会选择同一个节点作为主节点,所以无论访问那个节点都可以查看集群的状态信息。 而脑裂问题的出现就是因为从节点在选择主节点上意见不一致,出现分歧导致一个集群出现多个主节点从而使集群分裂,使得集群处于异常状态二、产生原因网络原因。集群间的网络延迟导致一些节点访问不到master,认为master挂掉了从而选举出新的master,并对master上的分片和副本标红,分配新的主分片节点负载主节点即负责

2020-09-11 14:55:10 254

原创 如何找回IDEA中删除的文件?

我们在使用IDEA的过程中,难免会删除一些文件,事后发现被删除的文件需要用到,又苦于不知道原来是怎么做的。其实IDEA可以 找回被删除的文件,IDEA对手动删除的文件做了一个本地历史记录,默认保存过去12个小时被删除的文件。找回文件的操作步骤如下;1、选中被删除文件所在的项目2、单击鼠标右键,找到Local History–>Show History3、找到要恢复的文件并选中,右击找到Revert恢复即可...

2020-09-06 15:31:26 8719 8

原创 IDEA2020.1常用快捷键

1、Ctrl+N按名字搜索类相当于eclipse的ctrl+shift+R,输入类名可以定位到这个类文件,就像idea在其它的搜索部分的表现一样,搜索类名也能对你所要搜索的内容多个部分进行匹配,而且如果能匹配的自己写的类,优先匹配自己写的类,甚至不是自己写的类也能搜索。2、Ctrl+Shift+N按文件名搜索文件同搜索类类似,只不过可以匹配所有类型的文件了。3、Ctrl+H查看类的继承关系,例如HashMap的父类是AbstractMap,子类则有一大堆。4、Ctrl+Alt+B查看子类方法实现

2020-09-05 22:32:38 527

原创 关于SpringBoot原理的简单总结

需要注意的三个原理分析Starter:是一套依赖关系的整理和封装让我们更加专注于业务开发,无需关心依赖导入,依赖冲突,及依赖的版本在pom文件导入starter既可使用对应的功能依赖管理:依赖管理是对依赖坐标的抽取和复用,统一管理依赖坐标的版本。实现了依赖坐标的版本管理starter随用随取避免了继承所有父类starter的依赖的臃肿避免了记忆所有starter的麻烦。自动配置:预先写入配置类,封装到AutoConfiguration的jar包中,按需求加载配置信息。基于

2020-08-29 22:02:40 150

原创 乐观锁与悲观锁(并发控制)

一、并发控制当程序中可能出现并发的情况时,就需要通过一定的手段来保证在并发情况下数据的准确性,通过这种手段保证了当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。常说的并发控制,一般都和数据库管理系统(DBMS)有关。在DBMS中的并发控制的任务,是确保在多个事务同时存取数据库中同一数据时,不破坏事务的隔离性和统一性以及数据

2020-08-17 16:27:11 521 1

原创 Idea右侧maven projects窗口消失解决方案

idea自带maven控件,不像Eclipse还需要下载控件,如果你之前有maven在右边,出于某种原因,消失找不到 了,你可以试试以下方法。方法1.点击idea界面最左下角小框,maven应该从里面找到方法2.点击菜单栏View->Tool Windows->Maven projects方法3.点击菜单栏Help->Find Action(Ctrl+Shift+A),输入Maven projects至此,问题得以解决...

2020-08-03 08:37:59 3974 1

原创 Dubbo学习总结

1. 应用架构的演进过程单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。分布式服务架构当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求

2020-08-02 22:28:40 119

原创 纯文本实现JDBC增删改查

现在Java的开发越来越多,很多人实用工具之后就忘记了很多最基本的Java基础,比如使用纯文本实现JDBC增删改查。使用纯文本实现JDBC需要手动加载数据库驱动jar,这个实现并不难,基本实现如下:1.编写基本JDBC代码import java.sql.*;public class JdbcDemo { public static void main(String[] args) { //Connection连接对象 Connection con = nu

2020-08-01 16:31:29 295

原创 Java死锁的基本实现

造成死锁的根本原因至少存在两个任务相互等待,根据这个思想就可以设计两个同步对象,让他们都有机会先执行1.创建LockApackage com.kwg;/** * @author wengQ * @Title: * @Description:同步对象B * @date 2020-07-15 08:17 */public class LockA { private LockA(){} public static LockA lockA = new LockA();}

2020-07-15 08:33:12 102

翻译 maven工程plugins报错

使用maven构建工程时,可能会遇到这么一个错误:Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.7.1我尝试了网络上的各种方法,都不好使,最后的解决办法是,根据报错信息指示,找到本地仓库的插件,删除本地maven仓库的插件,让项目重新下载插件...

2020-07-07 17:49:39 2466 1

原创 java8 stream().map().collect()简析

1.java8 stream().map().collect()的简单使用List productsList= productsService.findAll(); //从数据库查询商品集合现在想获取商品的分类ID;在后续的逻辑处理中要用;常用的方法我们大家都知道,用for循环,List categoryIdsList=new ArrayList();//定义一个集合来存储商品分类IDfor(int i=0;i<productsList.size();i++){ categoryId

2020-07-07 15:31:22 570

原创 使用maven构建简单的Java工程,采用JDBC批量插入数据

使用maven构建Java工程,使用简单的JDBC批量插入数据,基本步骤如下:1.创建maven项目2.添加依赖坐标<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.12</vers

2020-07-06 22:07:14 644

原创 使用JDBC批量插入10万条数据

使用JDBC批量插入10万条数据1.环境准备创建项目并添加相关依赖2.编写代码package com.kwg.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;/**@author wengQ@Title:@Description:@date 2020-7-5 22:

2020-07-05 23:18:58 1134

原创 使用UDP协议收发数据

最近项目需要用到UDP传输报文数据,特意花时间来学习了一下。话不多说,代码为上。 首先是通用bean的设计: import java.net.InetAddress; /** * @Author WQ * @Date 2018/11/20 - 9:42 * @Description 通用Bean */ public class DatagramB...

2018-11-20 13:30:51 729

原创 使用JedisClient连接Redis服务端报错

今天使用Jedis客户端连接Jedis服务端的时候,报错:jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set,在网上查了很多方法都不好用,经检查发现,我SpringBoot主配置文件里面配置的redis的password为空,在使用@Value注解注入password属性的时候,从配置文...

2018-10-19 14:50:25 787

原创 保密通信模型

2018-09-02 17:22:28 4239

原创 OSI安全体系结构

  OSI参考模型是由国际化标准组织制定的开放式通信系统互联参考模型(Open System Interconnection Reference Model,OSI/RM)。网络通信分为七层,从下到上分别是:物理层(Physical Layer)、数据链路层(Data Link Layer)、网络层(NetWork Layer)、传输层(Transport Layer)、会话层(Session L...

2018-08-31 21:56:28 12593

原创 SpringBoot初探(一)为什么要学习SpringBoot

  Spring诞生时是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。  虽然Spring...

2018-08-26 19:28:41 761

原创 静态代理及动态代理原理及简单实现

一、什么是代理代理其实就是一种模式,其目的就是为了解决在直接访问对象时带来的问题二、代理模式代理模式是常用的java设计模式,特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关

2017-09-04 00:41:31 222

原创 Java JSON解析工具类(支持泛型)

我们在解析Json数据时,可能会遇到一些意想不到的麻烦,比如:如何支持泛型操作。针对这个问题,以鄙人的愚见及个人的工作经历,将自己在工作中写过的一个json解析工具类分享出来,公大家参考。  该json解析工具类采用了阿里巴巴的开源项目fastjson,纵观json解析的开源项目及类库,似乎对fastjson的赞美从无停止过,fastjson更号称是Json解析中速度最快的一个类库。所以,能在

2017-09-02 23:12:09 2112

菜鸟爱学习,好好学习,天天向上

菜鸟爱学习

2024-03-04

spring源码,配套完善的注释

spring源码,已编译完成,导入即可运行

2024-01-15

互联网项目开发计划以及排班

互联网项目开发计划以及排班

2023-03-27

DDD领域驱动设计相关概念

DDD领域驱动设计相关概念

2022-07-05

VidJuice UniTube

2022-07-05最新VidJuice UniTube

2022-07-05

《设计模式:可复用面向对象软件的基础》的学习笔记

本项目是《设计模式:可复用面向对象软件的基础》的学习笔记。 原书采用了 C++ 或 Smalltalk 语言进行代码示例,本项目统一采用 Java 提供丰富的样例。

2022-06-29

50道经典SQL面经,刷完之后真是涨知识了

50道经典SQL面经,刷完之后真是涨知识了

2022-06-16

空空如也

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

TA关注的人

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