我的第一个hexo Blog

引用阮老师的话,

喜欢写Blog的人,会经历三个阶段。

第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写。
第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。
第三阶段,觉得独立博客的管理太麻烦,最好在保留控制权的前提下,让别人来管,自己只负责写文章。

自己比较懒惰,也就偶尔在OC上写点闲散的笔记,最近觉得还是应该要把自己的知识系统地梳理一下,便决定开一个独立的域名,自己记录Blog。

之前就了解Github Pages,也断断续续用MarkDown写过几篇放着,但是没有用jekyll,或者octpress等串起来,上个月再次想配置好jekyll,结果在mac下始终配置不好(怪我咯)。今天决定一定要配置好,搜集了大量资料(google “jekyll 像黑客一样”),结果意外在http://www.douban.com/group/topic/39939196/的回复中看到“用pelican吧 python的 还有hexo是nodejs的 ”。因为最近刚好在看nodejs,觉得很有兴趣,于是改为尝试hexo

more>>
Java发送邮件

需要在代码里面发邮件是很经常的事情,包括找回密码,通知用户领奖,监控报警等。

在Java里面实现比较简单,Oracle自己提供了JavaMail, 不过API比较底层,用起来不方便,可以自己封装下,也可以直接使用Apache的开源项目Commons Email。 下面的代码,可以以小马哥的名义给自己发邮件,该功能仅用于测试,请谨慎使用,产生的问题,本人概不负责。 /微笑

more>>
一个Java对象到底有多大

经常遇到一个问题,需要在内存里缓存一批数据来提高效率(避免每次都读取DB)。那问题来了,这些对象到底会占用多大内存呢,这直接决定了可以缓存多少条记录,以及上线之后是否会内存不够等问题。

来看几种解决方法。

more>>
Java Concurrency(三)——J.U.C AQS源码解读

java5之后的java.util.concurrent包是世界级并发大师Doug Lea的作品,里面主要实现了

  1. atomic包里Integer/Long对应的原子类,主要基于CAS;
  2. 一些同步子,包括Lock,CountDownLatch,Semaphore,FutureTask等,这些都是基于AbstractQueuedSynchronizer类;
  3. 关于线程执行的Executors类等;
  4. 一些并发的集合类,比如ConcurrentHashMap,ConcurrentLinkedQueue,CopyOnWriteArrayList等。

今天我们主要介绍AbstractQueuedSynchronizer这个可以说是最核心的类,没有之一。整个concurrent包里,基本都直接或间接地用到了这个类。Doug Lea的这篇论文里面讲AQS的实现。

more>>
J.U.C源码解读之atomic

java5之后的java.util.concurrent包是世界级并发大师Doug Lea的作品,里面主要实现了

  1. atomic包里Integer/Long对应的原子类,主要基于CAS;
  2. 一些同步子,包括Lock,CountDownLatch,Semaphore,FutureTask等,这些都是基于AbstractQueuedSynchronizer类;
  3. 关于线程执行的Executors类等;
  4. 一些并发的集合类,比如ConcurrentHashMap,ConcurrentLinkedQueue,CopyOnWriteArrayList等。

今天我们主要介绍atomic包下相关内容。

more>>