随笔分类 -  java

本地扫描maven项目依赖jar的license信息
摘要:添加plugin <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>license-maven-plugin</artifactId> <version>2.4.0</version> <configuration> <!--指定输出 阅读全文

posted @ 2024-03-18 10:26 mindSucker 阅读(195) 评论(0) 推荐(0) 编辑

关于Java的惰性求值
摘要:最近在学scala的时候,函数传参可以是传名参数,或者传值参数 1.Scala中的传名参数是什么意思?lazy关键字有什么作用? Scala官方文档的定义是:传名参数 仅在被使用时触发实际参数的求值运算。 它们与 传值参数 正好相反。 要将一个参数变为传名参数,只需在它的类型前加上 ⇒。 def c 阅读全文

posted @ 2021-08-18 15:59 mindSucker 阅读(227) 评论(0) 推荐(0) 编辑

Optional中的map函数和flatMap函数的区别
摘要:今天在学scala的时候发现Option中有map和flatMap返回的都是Option,然后再java8中的Optional也存在这样两个函数,觉得有点多余。后来分析了一下,还是有存在的必要的。 1. map函数 map函数不用问,使用的很广泛,函数签名是public<U> Optional<U> 阅读全文

posted @ 2021-08-13 15:26 mindSucker 阅读(1991) 评论(0) 推荐(0) 编辑

Filter Pattern 2 (dubbo的实现方式)
摘要:前一篇FilterPattern的范式,基本和Tomcat实现的filter chain是一样的; 这里介绍一下我看完dubbo关于Filter Pattern的实现思路,自己抽象出来的代码,以及理解 相关类的UML图: 可以从上图中看到这里的Invoker对应原来的Servlet,这里的Filte 阅读全文

posted @ 2021-07-28 17:33 mindSucker 阅读(42) 评论(0) 推荐(0) 编辑

Filter Pattern
摘要:1.什么是Filter Pattern? Filter Pattern 也可以叫Intercepting Filter Pattern(拦截过滤器模式),这个范式可以让你在执行原有逻辑(核心逻辑)之前和之后额外执行一系列逻辑,像这样: 2.这个范式能给我们的代码带来什么好处? Filter Patt 阅读全文

posted @ 2021-01-28 21:06 mindSucker 阅读(101) 评论(0) 推荐(0) 编辑

关于Redisson MultiLock 的改良
摘要:1. 背景:什么时候需要联锁(MultiLock)? 当我们需要对多个实例进行锁定,禁止别人同时修改任意一个锁定的实例,我们就需要一个联锁(MultiLock); 比如业务上,我需要同时操作1000条单据,处理过程是原子的,无法拆分;那么我们就必须使用上联锁(当然乐观锁也可以是一种选择); 2. 我 阅读全文

posted @ 2021-01-05 16:03 mindSucker 阅读(2259) 评论(0) 推荐(1) 编辑

GUAVA-RateLimit
摘要:RateLimit目前这个工具类还在@Bate阶段,在官方wiki文档中,还找不到; 1.当我们使用rateLimiter,我们能够实现什么? RateLimiter rl = RateLimiter.create(double permitsPerSecod); 通过如上的方法我们可以知道,Rat 阅读全文

posted @ 2020-09-28 11:55 mindSucker 阅读(179) 评论(0) 推荐(0) 编辑

JDK各版本发展史
摘要:JDK1.0 1.1 1996年Java有了第一个正式版本的运行环境。代表技术包括:Java虚拟机,Applet,AWT;1997年,Jar格式,JDBC,JavaBeans,RMI诞生; JDK1.2 1998年,SUN将Java技术体系拆分成三个方向,桌面引用开发J2SE,企业级开发J2EE,手 阅读全文

posted @ 2020-09-08 20:15 mindSucker 阅读(803) 评论(0) 推荐(0) 编辑

dubbo的异常栈问题
摘要:1.现象: 当dubbo provider 抛出异常时,dubbo consumer 在输出异常栈信息时,展示的都是provider 侧的线程栈,这是因为,异常的stackTrace实在在new Throwable()的时候生成的。 /** * Constructs a new throwable 阅读全文

posted @ 2020-08-13 18:20 mindSucker 阅读(430) 评论(0) 推荐(0) 编辑

关于InterruptedException
摘要:1.InterruptedException的由来 "Thread.sleep(long millis)", 以及"thread.wait()"方法,都会抛出InterruptedException,很多时候都不知道怎么处理这个异常;这个异常是由thread.interrupt()产生的,比如如果A 阅读全文

posted @ 2020-07-10 16:41 mindSucker 阅读(265) 评论(0) 推荐(0) 编辑

dubbo服务整合zipkin
摘要:去年一直有想法将openTracing整合进自己的dubbo服务的想法。但是zipkin brave 对 dubbo的支持,没有更新到最新版本,所以一直没有行动。 目前zipkin支持的语言,以及框架如下图:具体可以参考官方网址 其中brave library 是一个java项目,提供了对主流web 阅读全文

posted @ 2020-07-07 18:14 mindSucker 阅读(1170) 评论(0) 推荐(0) 编辑

JUC-FutureTask
摘要:1. 当我们执行Future future = executorService.submit(myCallable);代码时,我们执行了什么? 从类图可以看到,FutureTask实现了两个基类(Future,Runnable);这里实现Future的目的,很明确,因为Future就是代表一个异步任 阅读全文

posted @ 2020-04-29 19:08 mindSucker 阅读(179) 评论(0) 推荐(0) 编辑

jdk内置java命令 -java环境监控
摘要:参考: "Oracle Javase8 Doc" 关注Monitoring 1. "jps" 查询当前机器上当前用户的jvm进程的启动信息,包括pid,启动类,启动参数等相关信息 jps [ options ] [ hostid ] options: + q 只展示JVM的进程id + m 展示ma 阅读全文

posted @ 2019-12-12 19:59 mindSucker 阅读(292) 评论(0) 推荐(0) 编辑

Dto和Entity如何优雅的相互转换
摘要:什么是Dto,Entity,用来干什么?     Dto data transfer object 数据传输实体,主要用于数据传输的实体模型;     Entity 持久层的领域模型;     阅读全文

posted @ 2019-08-12 15:00 mindSucker 阅读(11029) 评论(0) 推荐(1) 编辑