Java
文章平均质量分 80
cheetahlover
Codinging
展开
-
登录接口压测响应慢频繁GC问题排查
登录接口压测响应慢GC问题排查2020.5.22最近项目组针对几个较重要的接口进行了几十个小时的压测,发现登录接口的压测呈现了一种响应慢且越来越慢的趋势,CPU 也居高不下压测情况查看CPU占用情况如图所示:找到对应服务包是鉴权服务(auth):持续运行3小时的CPU占用曲线图: 结论:sc-auth包中的登录接口,占用CPU较高,需要优化。排查思路业务场景很简单,账号密码鉴权登录接口。先排查为什么CPU占用率高从top命令的结果发现。pid为15082的原创 2020-06-03 15:41:57 · 3046 阅读 · 0 评论 -
ReentrantLock和AQS原理机制浅探(待续)
ReentrantLock和AQS原理机制浅探原创 2019-10-25 17:36:01 · 196 阅读 · 0 评论 -
RocketMQ使用和运行机制原理小结
RocketMQ特点和优势:支持事务消息:注意事务型消息并非分布式事务,只是为了保证本地事务与消息发送的一致性支持消息重试:支持定时消息:支持一定时间精度的定时消息,如5s,10s,1m等,不支持任意时间精度的定时消息RocketMQ架构和原理:NameServer集群用来作寻址路由,从Broker集群中读取可用的Broker地址返回给生产者集群或消费者集群,Broker集群主要负责消息...原创 2019-09-11 14:41:28 · 325 阅读 · 0 评论 -
HashMap源码浅探
HashMap源码浅探本文将会持续更新HashMap源码的探秘之旅底层数据结构HashMap的底层数据结构主要由一个数组 ,数组元素为Entry链表,当链表元素插入超过8个将转化为红黑树(treeifyBin)。详见以下方法分解。hash方法 static final int hash(Object key) { int h; return (key...原创 2019-09-11 10:23:35 · 128 阅读 · 0 评论 -
蚂蚁借呗总利息计算——每月等额(等额本息)
注:花了半天研究了一下蚂蚁借呗的利息计算,起因是因为一次简单的计算发现比借呗上实际利息要少好几块钱,这就有点疑惑了。说明: 特别说明的只有两点 1. 利息分两部分:第一部分,距最近一个还款日期(即分期起息日,每个人不同,如27日)前的利息按日利率算,如今天24日,每月的还款日为27日,则24日到27日的三天累计日利息为第一部分利息;第二部分为分期起息日到最后一个还款日的分期总利息,按等额...原创 2018-05-24 10:29:26 · 19123 阅读 · 4 评论 -
一次MultiValueMap参数类型要求引发的Spring中RestTemplate过程和HttpMessageConverter源码浅读
问题抛出:先扔一段相关内容: RestTemplate是Spring Cloud微服务中常用请求模板类,它面向服务的服务间通信调用 RESTful风格调用,支持GET、POST、PUT和DELETE请求并做了一些Http请求(内部http)的封装。 请求参数的类型可以是直接跟在url后面的参数,也可以MultiValueMap类型,也可以是一个Class等等,会由默认或者自配的M...原创 2018-04-25 21:38:26 · 3176 阅读 · 0 评论 -
Java线程池学习
注:近期学习线程池相关1.为什么需要线程池 有几种服务器模型: 1、收到一个请求就处理,这个时候就不能处理新的请求,这种为阻塞 这个是单线程模型,无法并发,一个请求没处理完服务器就会阻塞,不会处理下一个请求。一般的服务器不会使用这种方式实现。 2、收到一个请求就新开一个线程去处理任务,主线程返回,继续处理下一个任务,这种为非阻塞 首先纠正一个错误,这并不原创 2018-01-30 13:25:31 · 471 阅读 · 1 评论 -
一些Java IV知识点
Java中线程的sleep()和wait()有什么区别1、这两个方法来自不同的类。分别是:sleep来自Thread类,而wait来自Object类。 sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用了b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步原创 2016-11-19 22:45:42 · 569 阅读 · 0 评论 -
Java中的回调(摘录)
Java中的回调。原创 2016-10-06 15:15:10 · 275 阅读 · 0 评论 -
Java基础
传多个参数方法JDK1.6之后可以通过类型... 参数数组,即... param这样的方式传入一个或多个参数,如public void XXX(Integer... bid){} //取参数时通过数组索引取得,如bid[0]为第一个传入的参数原创 2016-06-20 23:53:59 · 315 阅读 · 0 评论 -
Spring依赖注入的四种方式(重点是注解方式)
原文地址:Spring中依赖注入的四种方式在Spring容器中为一个bean配置依赖注入有三种方式:·使用属性的setter方法注入这是最常用的方式;·使用构造器注入;·使用Field注入(用于注解方式).使用属性的setter方法注入首先要配置被注入的bean,在该bean对应的类中,应该有要注入的对象属性或者基本数据类型的属性。例如:为U...转载 2016-06-07 01:15:46 · 38390 阅读 · 5 评论 -
SSH框架下用JUnit和spring-test和EasyMock单元测试
NoClassDefFoundError: org/junit/Assume$AssumptionViolatedExceptionSSH框架用JUnit4.4和spring-test进行单元测试。使用JUnit和EasyMock测试Action、DAO原创 2016-06-02 02:59:27 · 5346 阅读 · 1 评论