Java
文章平均质量分 50
Bpazy
部分博客会更新在:https://github.com/Bpazy/blog/issues
展开
-
Fastjson 反序列化空字符串报错
有位同学表示疑惑,为什么一段代码原封不动的复制到另一工程就报错呢?看下简化后的问题代码:Properties userProperties = JSON.parseObject("", Properties.class);在 A 工程里,返回值为 null;而在 B 工程里则为抛异常:Exception in thread "main" com.alibaba.fastjson.JSONException: syntax error, expect {, actual EOF, pos 0, l原创 2021-06-29 17:16:34 · 1240 阅读 · 0 评论 -
Maven 3.5.2 导致 IDEA 下载依赖卡死失败
Maven 3.5.2 导致 IDEA 下载依赖卡死失败当 IDEA 使用 Maven 3.5.2 时,新增依赖,点击 Reload All Maven Projects,总是卡在 finished 上,如图:原因未知,解决办法:升级到 Maven 到 3.6.3。**但是!**新版本 IDEA ( 2020.2.3 ) 默认取的是工程中的 .mvn/wrapper/maven-wrapper.properties 中配置的版本,所以必须要修改该配置文件才可以正常更新依赖,如图所示:...原创 2020-11-14 21:25:06 · 732 阅读 · 0 评论 -
失败重试的策略(方法)
业务中往往会遇到失败重试的场景,如dubbo调用,默认3次重试,但是有些情况我们不能做重试操作,如被调用的接口不幂等。dubbo失败重试有它的固有缺陷,如:同步重试。往往很多场景并不需要同步的阻塞重试,可以尝试异步重试。本文尝试总结几种自动重试的方法。正文朴素方法朴素就是代码一把梭,不考虑扩展性,重用性。// 指定最大重试次数,成功就返回。for (i = 0; i < retry...原创 2019-11-25 00:09:44 · 2778 阅读 · 0 评论 -
迎接JUnit 5
给项目升级到junit5遇到点问题,导致单元测试失败,在这记录下原因。@BeforeEach没有运行原因是没有添加JUnit 5 TestEngine,查看我的POM文件:<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api...原创 2019-09-09 18:00:52 · 105 阅读 · 0 评论 -
Java中常量池、字符串、参数传递涉及到的一些问题
为什么有这篇文章String orgId = someThreadLocal.getOrgId();someClass.someMethod(orgId);someClass.someMethod(someThreadLocal.getOrgId());起源于上面这段代码对比,我们产生了一些争论:A: orgId这个中间变量,导致JVM多产生了一个对象。B & C: 不,...原创 2019-03-23 02:18:44 · 248 阅读 · 0 评论 -
Github 集成 Codecov 做测试覆盖率
首先贴一下官网的快速开始Getting StartedBasic UsageSign up on codecov.io and link either your GitHub, GitLab, or Bitbucket account.Once linked, Codecov will automatically sync all the repositories to which...原创 2019-01-16 22:16:54 · 3349 阅读 · 0 评论 -
ArrayList的初始容量以及扩容
先看没有指定容量的ArrayList构造函数和相关代码:public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; // 默认初始容量,这只是一个标记,在执行add方法的时候检测到这个标记会把初始值设为10}public boolean add(E e) { ensureCapacit...原创 2018-12-21 09:11:51 · 6778 阅读 · 0 评论 -
shiro-spring-boot-starter 1.4 定义SecurityManager报错
/** * 安全管理器 * 注:使用shiro-spring-boot-starter 1.4时,返回类型是SecurityManager会报错,直接引用shiro-spring则不报错 */ @Bean public DefaultWebSecurityManager securityManager(UserRealm userRealm) ...原创 2018-12-10 10:10:56 · 1106 阅读 · 6 评论 -
SnowFlake-分布式ID生成算法
benchmark waiting.原创 2018-12-08 20:34:30 · 190 阅读 · 0 评论 -
上传jar包到Maven中央仓库
注册帐号并创建工单(已创建过工单可略过)网址:issues.sonatype.org/secure/Dashboard.jspa新建账号,登录后选择Create Issue,选择Community Support - Open Source Project Repository Hosting (OSSRH)以及New Project。等待工作人员审核工作人员会审核你提交的issue,主...原创 2018-12-01 17:05:40 · 1058 阅读 · 0 评论 -
ThreadLocal遇上线程池存在的问题
ThreadLocal是以线程为key的,而线程池里面的线程是会被重新利用的,会导致ThreadLocal出现意料之外的事件。比如可能会导致在SAAS中的串库。解决办法如下:@Slf4jpublic class HiThreadPoolExecutor extends ThreadPoolExecutor { private Map&amp;lt;Integer, Thread&amp;gt; parentThrea原创 2017-10-10 11:33:41 · 1698 阅读 · 2 评论 -
Java String类的equals方法源码
先看条件:String s=”hello”;String t=”hello”;Char c[] ={‘h’,’e’,’l’,’l’,o’’};s.equals(t) t.equals(c)s == tt.equals(new String("hello")答案应该是什么呢?true, false, true, true这里需要确定的只有第二个,需要看一下equals源码:public原创 2016-09-08 10:44:23 · 1667 阅读 · 0 评论 -
Integer equals和==在自动拆装箱里的坑
前两天看到一个面试题,大体就是下面这样的代码:public class Test { public static void main(String[] args) throws Exception { Integer i1 = 10, i2 = 10, i3 = 128, i4 = 128; System.out.println(i1==i2);原创 2016-09-05 22:56:47 · 329 阅读 · 0 评论 -
Spring配置文件中<context:annotation-config/>
<context:annotation-config/>的作用类似 <bean class="org.springframework.beans.factory.annotation. AutowiredAnnotationBeanPostProcessor "/>, 但是包含了AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPo原创 2016-07-10 15:30:58 · 327 阅读 · 0 评论 -
Java动态加载结合gradle的多模块构建
那么怎样避免每次生成jar的时候需要手动生成jar呢?gradle 多module构建原创 2016-06-02 10:53:40 · 1575 阅读 · 0 评论 -
实现自己的EventBus
EventBus3.0简介EventBus3.0是通过注解的方式来实现的,避免了以前版本不能混淆的缺陷,今天我就来实现一个简易版本的EventBus。EventBusMyEventBus原创 2016-03-20 23:01:49 · 501 阅读 · 0 评论