• ES 2021 来了,详细解读5个新特性,附案例

    ES 2021是世界上最受欢迎的编程语言的最新版本〜本次迭代中包含了五个新特性,让我们来一睹为快。ES20211.全部替换replaceAll:js默认的replace 方法仅替换字符串中一个模式的第一个实例,要全局替换,你需要自己写正则,因此2021带来了全新的replaceAll方法。'Hello'.replaceAll('l', 'L') // 'HeLLo' 2。 Pr...

    Java 2021年01月30日 1167 0
  • 分布式调度框架 elastic-job 实践详解(超详细)

    在前几篇文章中,我们详细的介绍了 Quartz 的架构原理以及应用实践,虽然 Quartz 也可以通过集群方式来保证服务高可用,但是它也有一个的弊端,那就是服务节点数量的增加,并不能提升任务的执行效率,即不能实现水平扩展!之所以产生这样的结果,是因为 Quartz 在分布式集群环境下是通过数据库锁方式来实现有且只有一个有效的服务节点来运行服务,从而保证服务在集群环境下定时任务不...

    Java 2021年01月30日 1073 0
  • 在pdf上加盖电子签章

    在pdf上加盖电子签章,并不是只是加个印章图片,。而是要使用一对密钥中的私钥对文件进行签字。为啥要用私钥呢?很简单,因为公钥是公开的,其他人才可以用公钥为你证明,这个文件是你签的。这就是我们常说的:私钥签字,公钥加密。用公钥进行加密,才只有有对应私钥的人能解开。下面给出具体代码。另外,这对密钥应该去官方申请,我这里只是测试,所以就自己生成了。数字证书常见标准符合PKI ITU-...

    Java 2021年01月30日 2989 0
  • 关于useGeneratedKeys获取自增主键

    场景描述:一级菜单和二级菜单通过外键关联,在添加一级菜单同时添加二级菜单时,将一级菜单的主键id值作为二级菜单外键id值问题解决:可通过mybatis在insert后通过useGeneratedKeys获取一级菜单自增主键,在添加二级菜单时作为外键id值继续存入二级菜单Java Bean/** * 一级列表名称 * @author xj */ @Entity @Gett...

    Java 2021年01月29日 1230 0
  • Map get(K key)方法中隐藏的引用问题

    一、问题引出先是在 map中存放了 几个Student对象,然后 通过 map 的get(key) 方法,赋值给一个 声明的Student对象,然后调用了 student 的set方法,改变属性,发现 map中的对应的位置上面的 Student 对象中的属性也发生了变化二、示例代码package char01.testmap; public class Student { p...

    Java 2021年01月28日 1063 0
  • 如何讲清楚 Java 面向对象的问题与知识?

    写在最前面这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解。所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项目,专注 Java 后端面试题 + 解析 + 重点知识详解 + 精选文章的开源项目,希望它能伴随你我一直进步!说明:此项目我确实有很用心在做,内容全部是我参考了诸多博主(已注明出处)...

    Java 2021年01月28日 1160 0
  • jvm调优的几种场景

    假定你已经了解了运行时的数据区域和常用的垃圾回收算法,也了解了Hotspot支持的垃圾回收器。一、cpu占用过高cpu占用过高要分情况讨论,是不是业务上在搞活动,突然有大批的流量进来,而且活动结束后cpu占用率就下降了,如果是这种情况其实可以不用太关心,因为请求越多,需要处理的线程数越多,这是正常的现象。话说回来,如果你的服务器配置本身就差,cpu也只有一个核心,这种情况,稍微...

    Java 2021年01月28日 1043 0
  • 阿里 Mock 工具正式开源,干掉市面上所有 Mock 工具

    最近栈长注意到阿里开源了自家的 Mock 工具:TestableMock,该工具号称最轻量、简单、舒适的 Mock 测试工具,功能十分强大,媲美 PowerMock,用法比 Mockito 还要简洁,还不挑框架,指哪换哪,一个 @MockMethod 注解打天下。。。这么强大的么?栈长赶紧来体验一翻!TestableMock 简介TestableMock 开源地址:https:...

    Java 2021年01月28日 4481 0
  • 深入理解什么是端口(port)

    每当看到有人的简历上写着熟悉 tcp/ip, http 等协议时, 我就忍不住问问他们: 你给我说说, 端口是啥吧! 可惜, 很少有人能说得让人满意... 所以这次就来谈谈端口(port), 这个熟悉的陌生人.在此过程中, 还会谈谈间接层, naming service 等概念, IoC, 依赖倒置等原则以及 TCP 协议的一些重点知识.常见端口在我们的日常开发过程中, 特别是...

    Java 2021年01月27日 1143 0
  • 修炼SpringMVC-核心技能-文件上传

    在开发Web应用程序中,关于文件的上传操作是十分常见的,本节将了解下怎么利用SpringMVC进行文件上传。一、关于文件上传的一些配置1.导入上传的相关jar包在SpringMVC中实现文件处上传需要导入以下两个Jar包(版本可能有所不同)。com.springsource.org.apache.commons.fileupload-1.2.0.jar com.springso...

    Java 2021年01月27日 1057 0
  • 分布式延时任务方案解析

    前言在开发中,往往会遇到一些关于延时任务的需求。例如生成订单30分钟未支付,则自动取消生成订单60秒后,给用户发短信对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一共有如下几点区别定时任务有明确的触发时间,延时任务没有定时任务有执行周期,而延时任务在某事件触发后一段时间内执行,没有执行周期定时任务一...

    Java 2021年01月27日 1133 0
  • JeecgBoot 2.4.2 积木报表版本发布

    项目介绍JeecgBoot是一款基于代码生成器的低代码平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领低代码开发模式(OnlineCoding-> 代码生成-> 手工MERGE), 帮...

    Java 2021年01月27日 1725 0
  • 硬技能——Swagger一键生成接口文档,好轻松

    在开发测试过程中,经常遇到这种情况:1.测试人员,要看传递的参数对不对,数据类型,精度,边界值等传输是否正确2.前端开发人员,要看接口出入参,数据类型,层级关系,接口调用关系3.对接的第三方系统要看我们的接口文档很多时候,我们都会通过Word手写的形式,花费大量的时间精力来做这件事。殊不知知识就是效率地提升的最佳方案。首先在保证项目集成swagger的前提下,可以一键生成接口文...

    Java 2021年01月27日 1256 0
  • Java世界最常用的工具类库

    Apache CommonsApache Commons有很多子项目,常用的项目如下@Data public class User { private String username; private String password; }设置和获得属性User user = new User(); BeanUtils.setProperty(user, "user...

    Java 2021年01月26日 1401 0
  • Java之finally、final、finalize的区别

    这是一道比较常见的面试题,考察应聘者的Java基本功。其实我一直觉得这道面试题挺奇怪的,因为他仨除了长得像之外,在功能上没有任何相似之处。经典回答如下:finallyJava的异常处理机制分为:抛出异常(throws)和捕获异常(try - catch)。fianlly的作用是不管代码块是否发生异常,保证一段代码一定会被执行,用法是try - fianlly或者try - ca...

    Java 2021年01月26日 1149 0
  • 深入理解分布式缓存设计

    前言在高并发的分布式的系统中,缓存是必不可少的一部分。没有缓存对系统的加速和阻挡大量的请求直接落到系统的底层,系统是很难撑住高并发的冲击,所以分布式系统中缓存的设计是很重要的一环。下面就来聊聊分布式系统中关于缓存的设计以及过程中遇到的一些问题。缓存的收益与成本使用缓存我们得到以下收益:· 加速读写。因为缓存通常是全内存的,比如Redis、Memcache。对内存的直接读写会比传...

    Java 2021年01月25日 1039 0
  • 记一次Netty「直接内存溢出」导致线上网关项目宕机排查过程

    作为一名Java开发者,我们都知道Java进程是运行在Java虚拟机上的,而Java进程要想正常运行则需要向计算机申请内存,其中主要为Java对象实例所占用的堆(heap)内存(当然还有其他的也会占用内存,比如栈等),这些内存一般划分为Java虚拟机所占内存。在当今网络通信过程中,不可避免地需要用到高性能IO通信框架Netty,Spring Cloud Gateway也不例外用...

    Java 2021年01月25日 5110 0
  • 如何理解Spring框架的核心设计思想IoC模式

    Spring不单单只是一个框架,现在已经成为了一个产品家族,包括一系列以Spring命名的产品。整个Spring家族最早的成员Spring框架,是目前流行的web开发框架Spring Boot以及微服务治理框架Spring Cloud的基础,可以说Spring框架的出现改变了企业级互联网Java开发的历史。从Spring框架说起Spring框架诞生的时候,正是Java EE和E...

    Java 2021年01月25日 1278 0
  • IDEA Spring Boot 自动化构建+部署

    本文所有操作都基于Alibaba cloud Toolkit进行操作。1.插件安装在插件市场中下载安装。1.在IntelliJ IDEA顶部菜单栏中选择File>Settings。2.在Settings对话框的左侧导航栏中单击Plugins。3.在Plugins区域单击Marketplace。4.在搜索栏中输入Alibaba Cloud Toolkit。5.Search ...

    Java 2021年01月25日 1117 0
  • AES前后端对称加密

    概述 高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法,对称加密算法即加密和解密的过程使用同一个秘钥进行加密。本文从实用的角度去描述前后端使用AES对称加密。需求分析 前端请求数据传递参数时,需要对其进行加密,而不是使用明文进行传输,防止http请求被人截获而获取到信息,AES对称加密就是一种方式,前端对密码进行加密,传输给...

    Java 2021年01月25日 1199 0
  • 5千字的SpringMVC总结,我觉得你会需要

    思维导图文章已收录到我的Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary概述SpringMVC再熟悉不过的框架了,因为现在最火的SpringBoot的内置MVC框架就是SpringMVC。我写这篇文章的动机是想通过回顾总结一下,重新认识SpringMVC,所谓温故而知新嘛。为了了解SpringMVC,先看一...

    Java 2021年01月23日 1179 0
  • 使用 Flutter 开发简单的 Web 应用

    本文指导读者如何使用 Flutter 运行和部署第一个 Web 应用。-- Jis Joe Mathew(作者)Flutter 在 Android 和 iOS 开发方面走了很长一段路之后,已经迈入了一个新的阶段,即 Web 开发。Google 发布了 Flutter 1.5,同时支持 Web 应用开发。为 Web 开发配置 Flutter为了使用 Web 包,输入命令 flut...

    Java 2021年01月23日 1540 0
  • java.security框架之签名、加密、摘要及证书

    前言和前端进行数据交互时或者和第三方商家对接时,需要对隐私数据进行加密。单向加密,对称加密,非对称加密,其对应的算法也各式各样。java提供了统一的框架来规范(java.security)安全加密这类API。下面将一一介绍加密算法概念及分类秘钥生成摘要算法工具-MessageDigest签名算法工具-Signature常用加密工具类-CipherCertificate-证书的保...

    Java 2021年01月23日 1137 0
  • 基于雪花算法的Java版本的全局ID算法

    GUID是用Java语言实现的全局唯一ID算法,它基于Twitter的雪花算法SnowFlake。不仅可以使用于单机环境,更适用于分布式/集群环境中生成全局唯一的ID。已经在公司内部使用。1. 特点GUID算法具有以下特点:高性能:单节点,100万/秒递增:各节点按时间趋势递增长度短:64位长度的long类型整数,十进制表示时最长19位高可用:各节点独立生成ID可配置:各组成部...

    Java 2021年01月23日 1872 0
  • 详解一条 SQL 的执行流程

    前言天天和数据库打交道,一天能写上几十条 SQL 语句,但你知道我们的系统是如何和数据库交互的吗?MySQL 如何帮我们存储数据、又是如何帮我们管理事务?....是不是感觉真的除了写几个 「select * from dual」外基本脑子一片空白?这篇文章就将带你走进 MySQL 的世界,让你彻底了解系统到底是如何和 MySQL 交互的,MySQL 在接受到我们发送的 SQL ...

    Java 2021年01月23日 1048 0
  • 玩转 Java8 Stream,让你代码更高效紧凑简洁

    文章目录前言一、Stream 特性二、Stream 创建2.1 用集合创建流2.2 用数组创建流2.3 Stream静态方法三、Stream 使用案例3.1 遍历 forEach3.2 过滤 filter3.3 查找 findFirst,findAny3.4 匹配 match3.5 映射 map3.6 截取流 limit3.7 排序 sorted3.8 去重 distinct3...

    Java 2021年01月23日 1231 0
  • Java:Lombok插件用法笔记

    1、Lombok是什么东东?官方介绍Lombok项目是一个Java库,它可以自动嵌入你的编辑器和构建工具中,从而减少你的代码量。永远不要再写另一个getter或equals方法,它带有一个注释的你的类有一个功能全面的生成器,自动化你的日志记录变量等等功能。简单来说就是使用Lombok,通过注解,让你不再需要编写getter、equals等属性方法,减少样板代码的编写、起到提升代...

    Java 2021年01月23日 1381 0
  • 程序OOM,通过log日志定位,不要说自己具备高并发开发经验

    首先说一下,本人在开发中遇到的OOM异常基本也是通过看log日志去定位的(很多OOM异常是因为出现死循环或者查询返回的数据量多大,没有分页等等,通过异常日志我们确实能很快定位,但这不是正确的姿势。),只是碰巧刚好日志打印的异常栈信息就是对应的代码问题。很多博客也说了,定位OOM异常通过分析dump日志,因此深表疑惑,为什么明明看log日志就能解决的非要去分析dump日志,网上也...

    Java 2021年01月23日 1251 0
  • 分布式常见问题分析及解决方案

    1、分布式和集群概念分布式:可以简单理解成将一个独立的系统拆分成很多个子系统,每个子系统可以单独的运行(比如用户登录、订单支付),这个称之为分布式系统。集群:可以简单理解就是对于任何一个系统至少部署了两台服务器上,两台服务器上的应用完全一致。称之为集群。2、一致性Hash问题及解决方案2.1Hash溯源思考:为啥需要使用Hash?我们带着问题踏上寻求之旅,要想知道为啥使用Has...

    Java 2021年01月23日 1579 0
  • jdk8流处理toMap异常Duplicate key解决

    背景在开发过程中,我们经常要将list按照规则转为map,而jdk8提供了一个很好的工具:Collections.toMap,使用这个方法时,往往会有一些坑。Collections.toMap示例创建一个pojoimport java.io.Serializable; import lombok.Data; @Data public class Student implem...

    Java 2021年01月23日 1477 0