摘要: (二) Netty源码分析: 做一套rpc长连接框架,架构上其实没有多么难,只要具体里面的步骤包括即可: 一、全双工的socket连接; 二、心跳检测 三、超时重连、重传 四、白名单 五、编解码 这里还有相当多的技术规范与技术点,比如tcp消息封装定义消息头、消息体;定义反射类与方法用于远程方法执行 阅读全文
posted @ 2018-03-13 16:33 kevinfuture 阅读(1526) 评论(0) 推荐(0) 编辑
摘要: 想想基本上也一年多没有写复杂sql了!不写复杂sql的原因,一方面是为了减少复杂的笛卡尔积运算,节省数据库机器的资源;第二方面是为了让大部分数据尽量也命中缓存,如果是复杂的多表sql的话,一次更新操作可能就会将所有相关表的数据缓存失效掉! 这次由于一个小型的春运项目,有同事写出了慢查询,导致系统半天 阅读全文
posted @ 2018-03-09 21:04 kevinfuture 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 发现自己近一年有些毛病,自己也算是研习了不少的源代码,看了不少的技术书籍,但是自己就是记忆力不行,总是过段时间就会忘记,忘记之后还得从头开始啃源码、啃书籍。而且有些重要技术点也会遗忘,导致再学习的时候发现自己又回到了起点!我总结为,就是自己近一年期间犯懒,没有再写一下博客,技能点不能很好的再回顾! 阅读全文
posted @ 2018-03-02 18:33 kevinfuture 阅读(2074) 评论(0) 推荐(0) 编辑
摘要: package com.bj58.usdt.mobi.infolist.model; import com.bj58.wf.mvc.ActionResult; import com.bj58.wf.mvc.BeatContext; import com.bj58.wf.mvc.MvcConstant 阅读全文
posted @ 2017-10-26 17:46 kevinfuture 阅读(729) 评论(0) 推荐(0) 编辑
摘要: 异常 充分发挥异常的优点,可以提高程序的可读性、可靠性和可维护性。 1、 只针对异常的情况使用异常(异常适用于不正常的情形,) 不要在循环或者其他vm已经存在的机制中使用异常,例如:for循环中的每次数组访问都会检查是否越界异常,1、再加一次异常检验无疑是多余的;2、自加异常同时阻止住了jvm本来可 阅读全文
posted @ 2017-08-10 10:35 kevinfuture 阅读(234) 评论(0) 推荐(0) 编辑
摘要: public static void getSuperClass(Class clazz, AbstractInfo source, AbstractInfo target){ Field[] fields = clazz.getDeclaredFields(); for(int i = 0 ;i 阅读全文
posted @ 2017-06-22 15:37 kevinfuture 阅读(323) 评论(0) 推荐(0) 编辑
摘要: TreeMap是一个二叉树的数据结构;TreeMap不允许出现相同的键。 源码解析: 一: 这是TreeMap的put源码。 可以看出有一个泛型对象实体Entry,Entry里面维持一个 左、右子树跟父树 的对象属性。依靠这个实体完成树形结构的构建,包括hashCode跟equals的生成。 Tre 阅读全文
posted @ 2017-03-17 13:49 kevinfuture 阅读(1976) 评论(0) 推荐(0) 编辑
摘要: 异常 充分发挥异常的优点,可以提高程序的可读性、可靠性和可维护性。 1、 只针对异常的情况使用异常(异常适用于不正常的情形,) 不要在循环或者其他vm已经存在的机制中使用异常,例如:for循环中的每次数组访问都会检查是否越界异常,1、再加一次异常检验无疑是多余的;2、自加异常同时阻止住了jvm本来可 阅读全文
posted @ 2017-03-15 13:31 kevinfuture 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 早上突然想起多线程的内存可见性跟原子性!趁着脑子发热,马上写写! 说起内存可见性跟原子性,不可避免会想起几个关键字synchronized、volatile、AtomInteger;想起几个名词 指令重排序、as if serial语义、java八个指令。下面就详细讲解一下! 内存可见性:这是一种j 阅读全文
posted @ 2017-02-27 11:26 kevinfuture 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 一直以来只知道StringBuffer是线程安全的,StringBuilder是线程不安全的, 所以通常情况下使用StringBuilder,这样可以提升效率!!! 今天由于想起StringBuilder跟StringBuffer也都是使用了建造者模式的方式进行操作的, 看了下两者的源码!发现原来最 阅读全文
posted @ 2017-01-09 17:14 kevinfuture 阅读(165) 评论(0) 推荐(0) 编辑