肖汉松     关注
  • 39
    声望
  • 0
    勋章
  • 429
    积分
  • 热爱阅读,喜欢挑战。 热衷尝试新的技术,关注技术背后的原理。 关注领域:Java 服务端开发,网络编程。 关注语言:Java, C, Python。
    关注(0
    粉丝(11
    注册:2015/09/03
    城市:广州
    网站http://blog.xiaohansong.com
    • 发表文章 《编写高质量代码的思考》
      前最近在看《代码大全》,可以说是一本软件开发的百科全书,特别厚,但是干货也很多。平时写代码,代码规范是一个最低的要求(很多老代码连最低要求都达不到),为什么要这样规定代码要这么写,而不是那么写?这是一...
      2017/08/10 阅读原文
    • 发表文章 《代码生成利器:IDEA 强大的 Live Templates》
      对于这种小范围的代码生成,我们可以利用 IDEA 提供的 Live Templates功能。下面我来介绍一下Live Templates的用法。
      2017/03/18 阅读原文
    • 评论 《IDEA 代码生成插件 CodeMaker》
      你在搜索栏搜索一下codemaker应该就能找到了。
      2017/03/18 阅读原文 4
    • 发表文章 《IDEA 代码生成插件 CodeMaker》
      Java 开发过程中经常会遇到手工编写重复代码的事情,例如说:编写领域类和持久类的时候,大部分时候它们的变量名称,类型是一样的,在编写领域类的时候常常要重复写类似的代码。所以开发了一个 IDEA 的代...
      2017/02/05 阅读原文 4
    • 发表文章 《图解 Paxos 一致性协议》
      Paxos 一致性协议可以说是一致性协议研究的起点,也以难以理解闻名。其实协议本身并没有多难理解,它的难理解性主要体现在:为何如此设计协议以及如何证明其正确性。本文尝试通过流程图来说明协议的内容以及基...
      2016/09/30 阅读原文
    • 发表文章 《Zookeeper ZAB 协议分析》
      ZAB 协议是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的原子广播协议。在 ZooKeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性,基于该协议,ZooKeeper ...
      2016/08/26 阅读原文 1
    • 发表文章 《ZooKeeper Watcher 和 AsyncCallback 的区别与实现》
      初学 Zookeeper 会发现客户端有两种回调方式: Watcher 和 AsyncCallback,而 Zookeeper 的使用是离不开这两种方式的,搞清楚它们之间的区别与实现显得尤为重要。
      2016/08/22 阅读原文
    • 评论 《ThreadLocal 内存泄露的实例分析》
      在大多数场景下这是正确的,我没有说这个错误,我只是指出这个特定案例。我要指出,这个案例来自tomcat的https://wiki.apache.org/tomcat/MemoryLeakProtect...
      2016/08/22 阅读原文 12
    • 评论 《ThreadLocal 内存泄露的实例分析》
      我要指出,这个案例来自tomcat的https://wiki.apache.org/tomcat/MemoryLeakProtection的wiki,的确是出现过的,在7.0版本修复了。Leak ca...
      2016/08/22 阅读原文 12
    • 评论 《ThreadLocal 内存泄露的实例分析》
      我要指出,这个案例来自tomcat的https://wiki.apache.org/tomcat/MemoryLeakProtection的wiki,的确是出现过的,在7.0版本修复了。Leak ca...
      2016/08/22 阅读原文 12
    • 评论 《ThreadLocal 内存泄露的实例分析》
      如果webapp被卸载了,classloader泄露,是不是被加载的类还 占用内存,这算不算泄露。
      2016/08/22 阅读原文 12
    • 评论 《ThreadLocal 内存泄露的实例分析》
      第一个问题:我指的场景的确就是容器线程,你觉得没有必要使用ThreadLocal,但是不代表没有人这么干,滥用它。第二个问题:你没看清楚,我说的是在重载webapp之后会导致泄露,这种情况我有同事遇见...
      2016/08/22 阅读原文 12
    • 发表文章 《ThreadLocal 内存泄露的实例分析》
      上篇是从理论上分析ThreadLocal的内存泄漏问题,今天来分析实际案例。分析问题的过程比结果更重要,理论结合实际才能彻底分析出内存泄漏的原因。案例与分析问题背景在 Tomcat 中,下面的代码都在...
      2016/08/10 阅读原文 12
    • 发表文章 《深入分析 ThreadLocal 内存泄漏问题》
      ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。但是如果滥用 ThreadLocal,就可能会导...
      2016/08/07 阅读原文
    • 发表文章 《Getty:Java NIO 框架设计与实现》
      Getty是我为了学习 Java NIO 所写的一个 NIO 框架,实现过程中参考了 Netty 的设计,同时使用 Groovy 来实现。虽然只是玩具,但是麻雀虽小,五脏俱全,在实现过程中,不仅熟悉了...
      2016/07/31 阅读原文 2
    • 发表文章 《Java 线程池框架核心代码分析》
      多线程编程中,为每个任务分配一个线程是不现实的,线程创建的开销和资源消耗都是很高的。线程池应运而生,成为我们管理线程的利器。Java 通过Executor接口,提供了一种标准的方法将任务的提交过程和执...
      2016/07/30 阅读原文
    • 发表文章 《RedisHttpSession 的设计与实现》
      RedisHttpSession 是我的一个 Java 开源项目,通过将 Session 存储在 Redis 中实现多服务器间共享 Session,同时这一过程是完全透明的。主要用于支持 RESTfu...
      2016/07/30 阅读原文
    • 发表文章 《Linux 平台下阅读源码的工具链》
      看源代码是一个程序员必须经历的事情,也是可以提升能力的一个捷径。个人认为,要完全掌握一个软件的方法,只有阅读源码。
      2016/05/23 阅读原文
    • 发表文章 《程序员的知识管理》
      本文从一个程序员的视角来讨论知识管理,包括以下几个方面:①什么是知识管理;②为什么要管理知识;③如何管理知识
      2016/05/23 阅读原文 4
    • 发表文章 《Linux 内存寻址之分页机制》
      在上一篇文章Linux内存寻址之分段机制中,我们了解逻辑地址通过分段机制转换为线性地址的过程。下面,我们就来看看更加重要和复杂的分页机制。
      2016/05/20 阅读原文
    跳到底部
    返回顶部