随笔分类 - JAVA基础
摘要:1.现象 CPU利用率高. 应用缓慢或无法对外提供服务. 2.原因 1.死循环 2.JVM堆占用过大-高频率FULL-GC 3.排查方法 1.使用top命令找出CPU消耗最大的进程 2.使用top -Hp 进程(上一步得到的进程号),找出消耗CPU的线程. 3.使用[jstack 进程与jstat
阅读全文
摘要:上周开发微信代扣,微信代扣结果通知的平面XML非常复杂, 对于子节点,需要使用者实现ComplexConvert接口进行解析... * 总代金券退款金额 coupon_refund_fee_$n 否 Int 100 代金券退款金额<=退款金额,退款金额-代金券或立减优惠退款金额为现金,说明详见代金券
阅读全文
摘要:最近在开发微信代扣,涉及大量HTTP调用微信,就写了一个泛型模板,将序列化,反序列化,HTTP调用全部整合至泛型基类中. public abstract class WxCallbackHandler<C extends WeixinReturnParameter> implements Callb
阅读全文
摘要:这次开发支付对帐时,持久化对帐数据时线上突然出现下面这个死锁. ### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found whe
阅读全文
摘要:引言.最近对接支付宝支付时,发现支付宝接口返回一个泛型的对象.如{"XXX_YYY_response":{},"sign":"AFDSS#QR@43211423142341FAF"},其中 XXX_YYY_response 是动态变化的,即多个值映射到泛型字段. GSON 提供了 @Serializ
阅读全文
摘要:作用:用于一个或多个线程等待其它(一个或多个线程)完成相关操作.像日常生活的门锁一样,比如门装了三把锁,只有当三个把锁都打开时,门才能被打开. 方法: CountDownLatch(int count)初始化闭锁,指定闩数量. await();等待通过锁,只有所有的闩都释放后,才能通过锁,阻塞当前线
阅读全文
摘要:最近在做微信支付对接,微信接口是XML格式的,字段名如同appid,sign_type等.要将XML字段与JAVA 类字段对应起来.将遇到的问题及解决方法总结下. 本人采用XStream操作. 1.@XStreamAlias("name")--即可重命名为想的名称. 此注解可以加在字段或类上,当加到
阅读全文
摘要:一、排查过程 1:查看机器监控,初步判断可能有耗CPU的线程 bf04410e-9f05-4958-83e0-a2ead10a4aaa bf04410e-9f05-4958-83e0-a2ead10a4aaa 2:导出jstack,发现有大量的RUNNABLE线程,都在java-NIO,之前看过下面
阅读全文
摘要:1:继承了AbstractList<E>类,实现 List<E>接口,实现 RandomAccess接口,实现Cloneable接口,实现Serializable 接口, 2:AbstractList<E>继承AbstractCollection<E>类,实现 List<E>接口. 3:Abstra
阅读全文
摘要:List<String> all=new ArrayList<String>(); List<Object> test=(List<Object>)all; System.out.printf(String.valueOf(test.size())); 第二行会报错,不能强制转换
阅读全文

浙公网安备 33010602011771号