自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 利用IDEA的远程debug进行远程代码调试。

经常开发的同学肯定会遇到一个恶心的问题。MD!明明老子本地是正常的,怎么一上测试环境or生产环境就炸崩崩了。现在我们来配置远程debug,配完以后我甚至再也不喜欢在本地调试了(手动斜眼)首先第一步请在linux服务器上的tomcat中bin目录下修改catalina.sh的配置。export JAVA_OPTS="-server -Xms500m -Xmx500m -Xmn300m...

2019-01-09 14:45:25 14664

原创 30分钟手写一个简单的RPC

 RPC全名为Remote Procedure Call,顾名思义为远程调用,既然是远程调用,那就再熟悉不过了,IO、socket这些是逃不掉的。国内非常流行的rpc框架无疑是阿里巴巴开源框架—dubbo。dubbo底层就是利用netty进行网络IO实现通信。那么如何快速启动一个netty服务呢。我觉得,大家都是伸手党,直接copy代码跑起来是最爽的,那么就来吧。publ...

2018-10-29 17:32:37 639

原创 【源码分析】hashmap中的红黑树是如何进行排序的

使用过jdk1.8的童鞋们应该知道,jdk1.8对hashmap又进行了性能上的升级,虽然对于我们这些常年使用map只含有几十个key的业务员来说(斜眼笑),貌似没什么影响,但是,我们还是需要去了解一下的。首先我们知道,hashmap的底层数据结构是数组+链表。只有当hash发生碰撞时,才会形成链表,所以对链表部分进行了优化。假设一个人的名字(String)作为key,他叫Lebron...

2018-08-28 14:55:14 4272 10

原创 简单轻松的使用线程池

我们大多数当然都解除过quartz、schedule、elasticJob等任务框架,它们使用起来轻松便捷且安全性高。这些使我们自己不必直接去创建和维护线程。但随着业务场景的深入,它们有时候并不足够强大。假设有这样一个需求,把上一周每天登录过的用户做统计、分类等等一系列较为复杂的操作,如何更好的实现。第一个想到的是,我把每天的数据取出来,取7次,把每次的数据进行各项操作。有没有发现...

2018-08-21 13:59:57 157

原创 使用HeapHero分析JVM-OOM日志

首先我们在IDE里设置JVM的参数1 首先配置好堆的最小值和最大值。暂且先设置100M吧。-Xms100m-Xmx100m 2 再配置OOM时自动生成日志以及日志路径。-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=D://temp.hprofOK,前戏完毕,现在写一个main方法OOM。 OK,跑完以...

2018-07-30 11:23:36 2121

原创 巧妙运用spring依赖注入实现简单工厂模式

举一个业务场景: 假设有一个统一买票旅游的入口,买完票会有一个字段表明种类。 这些种类表明你去哪,怎么去。 是坐飞机去奥地利,或是走路到隔壁龙虾店,都不得而知,而且代码逻辑几乎没有关联。这个时候我们难道要这样写代码吗? if(type == 1){ 此处洋洋洒洒N多业务方法调用}else if(type == 2){此处...

2018-07-16 16:34:58 3563 2

原创 记录一下给公司写的一二级缓存小框架

主要原理利用spring中的AOP知识。1 首先先创建2个注解。2 切面。@Component@Aspectpublic class CacheAspect { private static CentralLogger logger = CentralLogger.getInstance(CacheAspect.class.getName());    private HashMap<St...

2018-06-04 22:01:54 158

原创 微信抢红包算法DEMO

public class Test2 { public static void main(String[] args) { Random random = new Random(); BigDecimal total = new BigDecimal(100);//红包总价值100 int personNum = 10 ;//红包受众10人...

2018-06-04 21:49:58 478

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除