
JAVA随笔
文章平均质量分 62
曹金桂
good good study
展开
-
FeignClient自定义日志打印
通常在集成feign的时候,都希望能够打印请求和相应日志。feign自有的日志打印不够友好自定义feign.Client代理类import com.google.common.collect.Sets;import feign.Client;import feign.Request;import feign.Response;import feign.Util;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import .原创 2021-11-19 17:37:16 · 1021 阅读 · 0 评论 -
Jacoco插装后$jacocoInit()方法实现
最近看了下Jacoco源码,对插装后的代码反编译,有看到定义$jacocoInit()方法,但无法反编译具体实现。通过阅读官方文档以下说明:Object access = ... // Retrieve instanceObject[] args = new Object[3];args[0] = Long.valueOf(8060044182221863588); // class idargs[1] = "com/example/MyClass原创 2021-03-31 21:16:53 · 1915 阅读 · 0 评论 -
Java变更行单元测试覆盖率
概述Java应用代码的单元测试覆盖率工具Jacoco已经非常成熟及完善了。对于历史的Java项目很多都是没有单元测试的,往往在新的在迭代的过程中都希望能有变更代码行的单元测试覆盖率,从而提高迭代质量。本文介绍怎么基于jacoco和maven构建变更行单元测试覆盖率报告。对于全量单测覆盖率报告怎么使用可以参考Jacoco官方文档获取变更行要构建变更行测试覆盖率,那么首先我们要定位出源代码的变更文件和对应变更行号。获取变更文件列表git diff --name-status ${baseCom原创 2021-03-31 20:25:14 · 1702 阅读 · 0 评论 -
聊聊微服务发布重启
概述在微服务架构体系下,服务的每一个节点都不应该是单点。每个服务都是集群部署,这样服务的发布会非常频繁。对于在大流量请求下,如何保证服务节点的发布过程中不影响任何一个业务请求往往会被忽略掉。在分布式系统中,一个请求的异常很可能就会导致一笔业务处理失败。业务如果没有自修复能力的话,这笔业务就会中断,往往需要人工介入,甚者会收到用户投诉。所以,在分布式微服务体系下,服务的优雅发布也是不能忽略的一部分。服务优雅发布流程服务的发布流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(原创 2020-12-15 13:10:58 · 1149 阅读 · 0 评论 -
JAVA垃圾收集器--深入理解JAVA虚拟机读书笔记
文章目录一、JAVA垃圾收集(GC)1. 程序计数器--线程私有2. Java虚拟机栈--线程私有3. 本地方法栈--线程私有4. Java堆--线程共享5. 方法区--线程共享6. 运行时常量池--线程共享7. 直接内存--线程共享二、JAVA对象内存布局1. 对象的创建2. 对象内存布局3. 对象的访问定位一、JAVA垃圾收集(GC)Java垃圾收集需要完成以下三件事情:哪些内存需要回...原创 2019-02-27 21:16:39 · 331 阅读 · 0 评论 -
JAVA内存区域与对象的内存布局--深入理解JAVA虚拟机读书笔记
文章目录一、JAVA内存区域及内存溢出异常1. 程序计数器--线程私有2. Java虚拟机栈--线程私有3. 本地方法栈--线程私有4. Java堆--线程共享5. 方法区--线程共享6. 运行时常量池--线程共享7. 直接内存--线程共享二、JAVA对象1. 对象的创建2. 对象内存布局3. 对象的访问定位一、JAVA内存区域及内存溢出异常1. 程序计数器–线程私有一块较小内存,当前线程...原创 2019-02-18 15:13:42 · 194 阅读 · 0 评论 -
ThreadLocal源码解析
转载出处:【huachao1001的专栏:http://blog.youkuaiyun.com/huachao1001】【huachao1001的专栏:http://blog.youkuaiyun.com/huachao1001】数据存取ThreadLocal的使用相信大家都比较熟悉,但是ThreadLocal内部是如何做到为不同线程保存不同的副本的呢?能看到这篇文章,说明你也跟我一样好奇。接下来我们一层一...转载 2019-03-14 14:21:48 · 288 阅读 · 0 评论 -
JAVA类加载机制--深入理解JAVA虚拟机读书笔记
参考:https://www.jianshu.com/p/ace2aa692f96原创 2019-03-11 12:50:21 · 282 阅读 · 1 评论 -
JAVA即时编译--深入理解JAVA虚拟机读书笔记
及时编译: JIThttps://www.ibm.com/developerworks/cn/java/j-lo-just-in-time/index.htmlpublic class TrueFalseVO { private static final int NUM=15000; private static int doubleValue(int i) { for (...原创 2019-03-22 15:40:05 · 310 阅读 · 0 评论 -
java线程学习笔记
学习博客地址:https://blog.youkuaiyun.com/hanchao5272/column/info/20199/31. Java线程状态图2. 并发-原子性、可见性、顺序性原创 2019-06-27 11:07:04 · 220 阅读 · 0 评论 -
Maven多模块及version修改
Maven多模块及version修改对于使用maven构建的java项目,通常聚合多个子模块项目。在版本迭代的过程中经常变更版本号,更新parent版本号,发现子模块版本号没有更新,需要一个个的手动去更新,太麻烦,且容易出错。在版本更新之后,内部模块之间的依赖也需要变更,往往存在遗漏。MAVEN多个子模块项目以上是一个基本的主项目parent包maven-multily-mo...原创 2019-01-16 18:48:28 · 35404 阅读 · 3 评论 -
java注解处理器
java注解处理器 转载https://race604.com/annotation-processing/Java中的注解(Annotation)是一个很神奇的东西,特别现在有很多Android库都是使用注解的方式来实现的。一直想详细了解一下其中的原理。很有幸阅读到一篇详细解释编写注解处理器的文章。本文的原文是ANNOTATION PROCESSING 101,作者是Hannes ...转载 2018-07-22 21:05:43 · 262 阅读 · 0 评论 -
自定义BeanValidation注解及Spring集成
概述 很早的时候写过一篇文章Spring-BeanValidation校验@RequestParam参数, 只是简单记录了怎么使用BeanBalidation。这篇文章会介绍怎么使用JAVA BeanValidation,怎么自定义constraint注解,最后会介绍下Spring中怎么集成使用BeanValidation。 JSR303 java的数据验证的规范,为 JavaBean...原创 2018-07-08 15:09:12 · 1546 阅读 · 0 评论 -
JAVA学习笔记--类加载机制
JAVA学习笔记–类加载机制一、概述JAVA类从被加载到虚拟机内存中开始,到卸载出内存为止,他的真个生命周期包过:加载(Loading),验证(Verification),准备(Preparation),解析(Resolution),初始化(Initialization),使用(Using),卸载(Unloading)七个阶段。二、类加载过程在java中,类的加载都依赖ClassLoader来实现,原创 2017-10-27 18:04:06 · 242 阅读 · 0 评论 -
JAVA学习笔记--线程状态及对象锁
JAVA学习笔记–线程状态及对象锁 https://my.oschina.net/goldenshaw/blog?catalog=3277710&temp=1499785479453JAVA学习笔记线程状态及对象锁一线程状态二对象锁一、线程状态【NEW】 新建尚未运行 还没调用start,或者调用了start()方法,不一定立即改变线程状态,中间可能需要一些步骤才完成一个线程的原创 2017-10-27 18:04:52 · 438 阅读 · 0 评论 -
JAVA学习笔记--GC日志解析
JAVA学习笔记–GC日志解析 https://my.oschina.net/u/2269952/blog/531558 转发文章,记录下来,便于以后工作查询1、相关命令使用GC日志命令行选项为: -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详细日志 -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准原创 2017-10-27 18:05:32 · 1401 阅读 · 0 评论 -
JAVA学习笔记--JDK工具
JAVA学习笔记–JDK工具一、JPS - JavaVirtual Machine Process Status Tool 显示指定系统内所有JAVA虚拟机进程参数: 1. -q 只输出进程ID,不显示class名称,jar文件名和传递给main方法的参数 2. -m 输出传递给main方法的参数(传给main方法的参数) 3. -l 输出应用程序main class的完整package原创 2017-10-27 18:06:22 · 308 阅读 · 0 评论 -
Spring-BeanValidation校验@RequestParam参数
记录是一种精神,是加深理解最好的方式之一。 曹金桂 cao_jingui@163.com(如有遗漏请指教) 时间:2017年02月27日概述我们知道,Spring BeanValidation可以用来校验我们客户的提交的参数对应的Bean对象。但是在很多情况,我们的参数只有一个简单字符串或者是数字型参数(采用@RequestParam注解),要想使用SpringValidation还原创 2017-10-27 18:07:16 · 16115 阅读 · 2 评论 -
一张图理解java注解
c转载 2014-11-09 10:13:44 · 542 阅读 · 0 评论 -
java用axis2生成webservice客户端代码及使用方法
这两天javaweb项目需要调用c#发布的webService接口原创 2014-04-16 14:52:49 · 12387 阅读 · 1 评论 -
Servlet 后台线程启动
刚开始学java,做javaweb开发,想z原创 2014-04-13 23:18:10 · 1319 阅读 · 0 评论 -
IDEA 调试自定义AbstractProcessor
IDEA 调试自定义AbstractProcessor本人需要自定义Processor代码编译插件,在开发过程中API不熟悉,需要多次Debugger调试。搜索了很久才找到怎么对自定义Processor进行调试。 参考地址:https://stackoverflow.com/questions/31345893/debug-java-annotation-processors-usin...原创 2019-02-13 20:27:55 · 2952 阅读 · 1 评论 -
JAVA学习笔记--垃圾收集器
JAVA学习笔记–垃圾收集器一、概述 参考:http://blog.youkuaiyun.com/ffm83/article/details/42873001 参数 描述 新生代GC方式 老年代和持久代GC方式 -XX:+UseSerialGC Jvm运行在Client模式下的默认值,打开此开关后,使用Serial + Serial Old的收集器组合进行内存回收 Serial 串行原创 2017-10-27 18:02:17 · 348 阅读 · 0 评论