自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(186)
  • 收藏
  • 关注

转载 IDEA Maven 解决jar包冲突

jar包冲突

2022-09-27 21:29:56 522

原创 ENS源代码

区块链 ens 源码分析 底层后端功能实现

2022-07-19 15:44:43 434

转载 Cpu运作原理与机制,那么CPU如何跑的更快?

前言代码都是由 CPU 跑起来的,我们代码写的好与坏就决定了 CPU 的执行效率,特别是在编写计算密集型的程序,更要注重 CPU 的执行效率,否则将会大大影响系统性能。CPU 内部嵌入了 CPU Cache(高速缓存),它的存储容量很小,但是离 CPU 核心很近,所以缓存的读写速度是极快的,那么如果 CPU 运算时,直接从 CPU Cache 读取数据,而不是从内存的话,运算速度就会很快。但是,大多数人不知道 CPU Cache 的运行机制,以至于不知道如何才能够写出能够配合 CPU Cache

2020-10-19 14:59:40 796 1

转载 常用正则表达式

(注:元字符包括\ | ( ) [ ] { } ^ $ * + ? . )匹配中文字符的正则表达式:[\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:\n\s*\r评注:可以用来删除空白行匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</>|<..

2020-09-11 20:11:55 427

转载 相关性分析的五种方法

相关分析(Analysis of Correlation)是网站分析中经常使用的分析方法之一。通过对不同特征或数据间的关系进行分析,发现业务运营中的关键影响及驱动因素。并对业务的发展进行预测。本篇文章将介绍5种常用的分析方法。在开始介绍相关分析之前,需要特别说明的是相关关系不等于因果关系。相关分析的方法很多,初级的方法可以快速发现数据之间的关系,如正相关,负相关或不相关。中级的方法可以对数据间关系的强弱进行度量,如完全相关,不完全相关等。高级的方法可以将数据间的关系转化为模型,并通过模型对未来的业.

2020-09-04 17:26:41 99004

转载 FactoryBean与BeanFactory 区别

BeanFactory是接口,提供了OC容器最基本的形式,给具体的IOC容器的实现提供了规范, FactoryBean也是接口,为IOC容器中Bean的实现提供了更加灵活的方式,FactoryBean在IOC容器的基础上给Bean的实现加上了一个简单工厂模式和装饰模式(如果想了解装饰模式参考:修饰者模式(装饰者模式,Decoration)我们可以在getObject()方法中灵活配置。其实在Spring源码中有很多FactoryBean的实现类.区别:BeanFacto...

2020-08-20 14:57:27 731

原创 阿里巴巴开源java诊断工具Arthas

Arthas是Alibaba开源的Java诊断工具;核心功能 排查调用异常:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 类编译,获取线上实时运行代码:我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 增订类增加执行结果存日志/动态更新logger级别:遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? :线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! moni.

2020-08-20 10:37:36 193

转载 对象级别锁与类级别锁

同步针对的是多线程。同步的方法或代码块同时只能由一个线程执行。Java支持多线程来执行。这可能会导致两个或多个线程访问同一个字段或对象。同步是一个使所有并发执行的线程同步的过程。同步避免了由于共享内存视图不一致而导致的内存一致性错误。当一个方法被声明为同步时,如果一个线程正在执行同步方法,线程保存该方法对象的监视器(monitor),同时该线程被阻塞,直到该线程释放监视器(monitor)为止。同步在Java中使用synchronized关键字实现。可以在类中定义的方法或块使用同步关键字。关键字不能

2020-08-19 20:49:36 173

转载 Log日志规范

重点推荐阅读:https://www.jianshu.com/p/8551fe9c6354目前我用的两种方式。文章来源于公司的大牛1 Log的用途不管是使用何种编程语言,日志输出几乎无处不再。总结起来,日志大致有以下几种用途:l 问题追踪:通过日志不仅仅包括我们程序的一些bug,也可以在安装配置时,通过日志可以发现问题。l 状态监控:通过实时分析日志,可以监控系统的运行状态,做到早发现问题、早处理问题。l 安全审计:审计主要体现在安全上,通过对日志进行分析,可以发现是否存在非授权

2020-08-12 13:34:32 1653

原创 Spring中有哪些扩展的地方

spring初始化的扩展点https://www.jianshu.com/p/397c15cbf34anvokeBeanFactoryPostProcessors(beanFactory)方法就是第一小节提到的BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor的调用。invokeBeanFactoryPostProcessors方法的调用逻辑:如果beanFactory是BeanDefinitionRegistr.

2020-08-06 18:34:49 360

转载 classLoader双亲委托与类加载隔离

虽然前面把class文件的产生到加载使用流程说了一遍,但是还是想具体看看classLoader的双亲委托具体是如何运行的,有什么利弊。还有想看看不同类加载器的不同命名空间带来那些好处和实际有那些应用?并且想对ClassLoader加载类这个过程进行更加底层的了解,通过阅读源代码和自定义类加载器方式实践。双亲委托机制?还是先看看JVM中的类加载器层次结构如下:Bootstrap classLoader /\ /||\ Exte

2020-07-31 20:06:42 217

原创 运算工具类-Apache Math

package com;import org.apache.commons.lang.math.Range;import org.apache.commons.lang3.StringUtils;import org.apache.commons.math3.stat.StatUtils;import org.apache.commons.math3.stat.descriptive.moment.StandardDeviation;import org.apache.commons.math.

2020-07-18 15:38:46 1305 4

原创 参数解析,转换实现方案对比

java系统开发的时候,相信大家都需要获取当前登录用户,用来记录操作员、格式化日期参数、操作线程信息、分页配置信息、将数据信息驼峰与数据库命名方式进行转换等。 针对这种参数解析,我们有两种方案可采用:WebArgumentResolver和HandlerMethodArgumentResolver; 首先介绍一下会遇到的问题: 第一个问题:在配置文件中自定义的argument只有第一个有效,后面的参数都无效。相关的配置信息如下:...

2020-07-17 11:24:29 198

转载 Swagger自动生成API接口文档

spring-boot作为当前最为流行的Java web开发脚手架,相信越来越多的开发者会使用其来构建企业级的RESTFul API接口。这些接口不但会服务于传统的web端(b/s),也会服务于移动端。在实际开发过程中,这些接口还要提供给开发测试进行相关的白盒测试,那么势必存在如何在多人协作中共享和及时更新API开发接口文档的问题。假如你已经对传统的wiki文档共享方式所带来的弊端深恶痛绝,那么尝试一下Swagger2 方式,一定会让你有不一样的开发体验:功能丰富 :支持多种注解,自动生成接口文档界面

2020-07-17 10:48:50 1171

转载 @Bean注解详解

转载自:https://www.cnblogs.com/cxuanBlog/p/11179439.html@Bean 注解全解析目录 @Bean 基础声明 @Bean 基本构成及其使用 @Bean 注解与其他注解产生的火花 @Profile 注解 @Scope 注解 @Lazy 注解 @DependsOn 注解 @Primary 注解 随着SpringBoot的流行,基于注解式开发的热潮逐渐覆盖了基于XML纯配置的开发,而作为...

2020-07-17 10:28:56 11905 1

转载 POI操作excel基础用法详解

http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/http://poi.apache.org/apidocs/org/apache/poi/ss/util/CellRangeAddress.htmlhttp://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFSheet.htmlhttp://poi.apache.org/apidocs/org/apache/poi

2020-07-15 10:20:15 7009 1

原创 Http请求封装的三进阶

系统与系统之间的交互往往会使用到http请求,而我们发起http请求过程繁琐;因此我们需要对Http请求进行封装以方便使用;最近项目中接触到了一个经常被其他项目调用的项目主体,研究其演进架构,将其精髓记录下来 首先我们来看一看最原始的Http请求的代码书写/** * http请求第一个版本(直接发起Http请求) * * @author hzm ${2020-06-20 17:57} */public class Http { /** * http请...

2020-07-10 17:24:52 1488 1

转载 Spring扩展接口之FactoryBean

是什么  FactoryBean的源码比较简单,大家可以细读下其注释,我做了简单的如下翻译/** * 实现此接口的bean不能用作普通bean。此bean暴露的对象是通过getObject()创建的对象,而不是它自身 */public interface FactoryBean<T> { /** * 返回此工厂管理的对象的实例(可能是共享的或独立的,取决于isSingleton()的返回值) */ @Nullable T getObj

2020-07-10 16:56:30 206

原创 设计模式-详解工厂模式

简单工厂模式:一个披萨店提供不同口味的披萨饼,披萨生产过程:原料准备、烘焙、切片、包装 1、将变化封装到工厂中,修改代码则修改工厂中的代码; 2、工厂可以生产多种产品,不局限于一种类型 3、给简单工厂提供静态方法,避免了实例化对象,也使得不能通过继承来改变创建方法的行为;public class SimplePizzeFactory{ public static Pizza createPizza(String type){ P...

2020-07-07 10:08:15 146

转载 MethodInterceptor实现自定义的AOP操作类

转载自:https://blog.csdn.net/u013905744/article/details/91364736今天遇到一个使用MethodInterceptor 的类,无法实现spring初始化,学习下这个方法的用法如果对于spring MethodInterceptor或spring aop概念不清楚,参考:spring aop, spring interceptor, springmvc interceptor有什么区别?以下是在spring boot环境下执行的在..

2020-06-11 19:33:36 1247

原创 委派模式-简单示例到源码解析

1,含义: 又叫委托模式,,将任务的调度和分配与任务的执行分离开来; 是一种特殊的静态代理, 属于行为型模式;2、应用场景: ①委派不知道任务如何进行处理,把请求交给对象处理 ②实现程序的解耦(更注重委派的规则)3、在生活场景中的应用 ①老板委派员工实现想法 ②业务办理的委托通用实现: 实例1(老板给主管下达命令,leader分配任务) IEmployee ...

2020-06-04 16:26:26 273

原创 设计模式-结构型模式(装饰器模式)

装饰器模式的应用场景含义:创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。特征:1、可以透明动态的扩展一个类的功能或给一个类添加附加职责; 2、动态的给一个对象添加功能,这些功能可以再动态的撤销;使用场景:扩展一个类功能; 动态增加功能,动态撤销; 当存在较多复杂的类功能组合的时候,为避免类爆炸,就会采用装饰器模式;命名规则:Decorator生活中案例: 咖啡:...

2020-05-27 17:28:11 284

原创 设计模式-结构型模式亨元模式

享元模式和组合模式的应用场景含义: 是对象池的一种实现,类似于线程池,可以避免不停的创建和销毁多个对象,消耗性能;使用场景: 在系统有大量的相似对象,需要缓冲池的场景,一般会搭配工厂模式使用;现实案例: 房源渠道、全国社保联网、线程池;亨元的通用实现接口Shape定义亨元被外部调用的方法具体的亨元实现Circle实现接口Shape并实现自定义方法工厂类ShapeFactory 在调用getCircle() 的时候从维护的HashMap(circleMap)中根据主键获取唯一身份标识的

2020-05-26 16:47:48 236

转载 java程序如何实现类数据库事务完整性

转载自:https://www.cnblogs.com/baibaluo/p/3185925.html利用 java.lang.Runtime.addShutdownHook() 钩子程序,保证java程序安全退出以前在开发时只知道依靠数据库事务来保证程序关闭时数据的完整性。但有些时候一个业务上要求的原子操作,不一定只包括数据库,比如外部接口或者消息队列。此时数据库事务就无能为力了。这时我们可以依靠java提供的一个工具方法:java.lang.Runtime.addShutdownHook.

2020-05-26 16:31:36 519

转载 处理器拦截器(HandlerInterceptor)详解

作者:编程界的小学生链接:https://www.jianshu.com/p/1e8d088c2be9来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。简介SpringWebMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于处理器进行预处理和后处理。应用场景1、日志记录,可以记录请求信息的日志,以便进行信息监控、信息统计等。...

2020-04-30 18:19:47 1724

原创 Filter详解与使用场景

javax.servlet.Filter1、Filter简介 Filter译为过滤器,用于处理客户端请求到Servlet之间的过滤程序。先于与之相关的servlet或JSP页面运行,实现对请求资源的过滤的功能,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理。2、运行原理 当客户端向服务器端发送一个请求时,如果有对应的过滤器进行拦截,过...

2020-04-30 18:03:41 773

翻译 函数式编程接口Consumer

作者:木子小三金链接:https://www.jianshu.com/p/63771441ba31从JDK8开始java支持函数式编程,JDK也提供了几个常用的函数式接口,这篇主要介绍Consumer接口。文本介绍的顺序依次为:源码介绍 使用实例 jdk内对Consumer的典型使用 扩展类介绍 使用方案大猜想源码介绍package java.util....

2020-04-29 19:19:59 2341

原创 建造者Builder模式介绍与实操

概念建造者模式,又称为生成器模式,是一种对象构建模式,将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造不同的属性对象出来;优点1,相对静态工厂和构造器,可以很好的扩展到大量的可选参数; 比如构造一个包装食品的营养成分标签;2,相对javaBean来说,可以更好实现类的可变性;3,增加新的具体建造者无需修改类库代码,符合开闭原则;4,相对抽象工...

2019-12-06 16:20:38 538

原创 原型模式在实际开发中的应用BeanUtils

我们学习设计模式的时候学了原型模式,原型模式在我们的实际开发中使用场景也是很多的,我在实际开发中主要有以下两大场景: 1、在我们希望接下来这个类的操作与之前这个类的操作之间相互不影响; 2、通常在异步操作的时候避免多线程问题,在调用方法的时候不希望被调用方法对对象的操作影响本层的剩余业务逻辑处理; 在需要这样...

2019-12-06 14:25:09 875

原创 代理模式(自己实现源码)

代理模式概述:作 用:保护被代理对象,通过被代理类的功能增加快速实现具有相同功能增强需求的被代理功能增强;特 点:现实世界代理是委托人找代理人, 设计模式中是代理人调用委托人;优 点:有利于框架的拓展增强被代理对象,解耦调用者与被调用者,提高代码的重用率;使用场景:需要对被代理对象进行功能增强的时候使用,一般用于框架重用与多处业务逻辑;典型案例...

2019-12-05 15:39:15 843

原创 从源码分析Request结束生命周期的处理流程

最近在项目中遇到 由异步执行任务导致的Request中的请求入参对象被不同请求污染的多线程问题; 在同事的研究下,发现了一把Request 在源码层面是如何进行回收处理的;因此将其中涉及到的主要源码进行展示: 首先,根据源码断点我们发现Request采用了包装器模式,而最核心处理的Request是or...

2019-11-26 15:45:12 452

转载 SpringMVC前后端接口使用规范

@RestController@RequestMapping("/test")public class TestController { // application/x-www-form-urlencoded // 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理); ...

2019-11-22 15:15:16 498

转载 markDown基本语法

最近项目做钉钉推送需要使用markDown对内容进行编辑;因此找了份markDown基本语法,备份已备不时之需;Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。相比WYSIWYG编辑器优点:1、因为是纯文本,所以只要支持Markdown的地方都能获得一样的编辑效果,可以让作者摆脱排版的困扰,专心写作。2、操作简单。...

2019-11-18 12:23:48 1124

转载 Cookie/Session机制详解

转载自:https://blog.csdn.net/fangaoxin/article/details/6952954 最近在工作中遇到需求,大量的接口需要增加同一个传参,便采用了cookie方法,实时的传输当前的所需字段,这样避免了对接口的大规模的改造;但是需要掌握前端和后端的cookie的设置和获取;因此收集该文章已备后用;会话(Session)跟踪是Web程序...

2019-09-26 15:26:00 310

原创 Atomic原子操作类详解

1、基本介绍 Atomic,是一种采用乐观锁方式实现线程安全的;可以高效保证线程安全的去更新基本变量,数组,引用类型;其实现的底层原理是CAS; CAS是什么? 是乐观锁操作,在线程访问共享资源的时候,通过比较交换(Compare and swap)来鉴别线程是否冲突,没有冲突则成功,冲突则重试,直到成功为止; 底层...

2019-08-17 21:11:11 818

原创 CopyOnWriteArrayList源码与原理分析

1、CopyOnWriteArrayList简介 CopyOnWriteArrayList是线程安全的ArrayList,在读多写少的高并发场景中性能卓越,数据一致性遵循base原则,弱一致性,确保最终一致性;为了加深理解,我们先来梳理下ArrayList发展历史上的实现对比吧; ArrayList,线程不安全的,在并发环境下,在写线程在写数据的时候,基于fas...

2019-08-16 17:53:33 331

原创 ThreadLocal源码分析

1、ThreadLocal基本介绍 ThreadLocal即变量副本,在多线程中,每个线程保存一个线程的本地变量副本,在使用中各用各的,避免共享资源的竞争; 从这里我们可以了解到变量副本会给每个线程一个变量值,是一种时间换空间的方案; 同时因为每个线程之间的操作相互不同步,不共享;因此变量副本仅适用于每个线程独立操作的场景;比如:存放session这种特征值,模板...

2019-08-16 16:19:18 168

原创 Mysql的批量更新

MySql中4种批量更新的方法 最近在完成MySql项目集成的情况下,需要增加批量更新的功能,根据网上的资料整理了一下,很好用,都测试过,可以直接使用。 mysql 批量更新共有以下四种办法1、replace into 批量更新 replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y');例子:rep...

2019-08-15 19:29:08 390

原创 CurrentHashMap源码分析

1、ConcurrentHashmap的由来 HashMap不是线程安全的,在多线程情况下会导致扩容出现循环链表,造成访问这个Entry的线程死循环,CPU接近100%; Hashtable,使用synchronized进行线程安全的控制,因为每次只有一个对象获取监视器锁,因此在高并发情况下,性能再次成为瓶颈。类似表锁; Concurren...

2019-08-14 19:29:11 960

原创 ScriptEngine实现js编程

js作为弱类型语言,在开发之中有其开发速度快,对象创建灵活等好处;当我们想使用js来开发后端程序的时候,就可以使用ScriptEngine来实现,甚至可以仅仅作为一个表达式执行器;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.Bindin...

2019-08-13 23:14:35 2103

空空如也

空空如也

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

TA关注的人

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