• 谈谈ThreadLocal

    Java并发编程实战 一书在介绍ThreadLocal类时(第3章),书中有这么两段话,在我初次阅读时不知道如何去理解。 ThreadLocal对象通常用于防止对可变的单实例变量(Singleton)或全局变量进行共享。 当某个频繁执行的操作需要一个临时变量,例如一个缓冲区,而同时又希望避免在每次执行时都重新分配该临时对象,就可以使用这项技术。例如,在Java 5.0之前,Integer.toString()方法使用ThreadLocal对象来保存一个12字节大小的缓冲区,用于对结果进...

  • 如何实现一个Java Class解析器

    最近在写一个私人项目,名字叫做ClassAnalyzer,ClassAnalyzer的目的是能让我们对Java Class文件的设计与结构能够有一个深入的理解。主体框架与基本功能已经完成,还有一些细节功能日后再增加。实际上JDK已经提供了命令行工具javap来反编译Class文件,但本篇文章将阐明我实现解析器的思路。Class文件作为类或者接口信息的载体,每个Class文件都完整的定义了一个类。为了使Java程序可以“编写一次,处处运行”,Java虚拟机规范对Class文件进行了严格的规定...

  • CSAPP: Shell Lab

    这个实验通过实现一个支持作业控制的Unix Shell,让我们对进程控制和信号控制更加熟悉。课程Lab已经帮助我们搭建起了Shell的整体框架,并实现了与本次实验不太相关的代码,核心部分需要我们自己完成。整体框架Shell从标准输入(stdin)读取用户输入的命令,然后解析命令,Shell支持两种类型的命令:如果用户输入的是的内置命令(如quit、jobs等),那么直接执行该命令;如果用户输入的是某个可执行文件的路径,那么通过fork一个子进程,在子进程中加载并执行命令。Shell把每次用...

  • MapReduce论文阅读

    大四时曾经粗略的阅读过这篇论文,并且已经写过不少的MapReduce程序,所以介绍性的内容不再赘述。再次阅读这篇论文的原因是为了更系统的学习分布式的相关知识,我开始跟进MIT 6.824: Distributed Systems,而完成这门课程的第一个lab的前提便是阅读这篇论文。这篇笔记重点分析了MapReduce的执行流程以及容错机制,因为是个人理解,若有分析不妥之处欢迎发送邮件至tinylcy (at) gmail.com讨论交流。Execution Overview根据不同的环境,...

  • Bigtable论文阅读

    本文是我对Bigtable论文进行第一轮阅读所做的笔记。对于理解欠妥的地方,欢迎发送邮件至tinylcy (at) gmail.com讨论。Data Model A Bigtable is a sparse, distributed, persistent multi-dimensional sorted map. The map is indexed by a row key, column key, and a timestamp; each value in the map is ...

  • 2016年度总结及2017年度计划

    从2016年12月开始持续使用Pomotodo起,我逐渐意识到给自己定下量化计划是一件能够提升学习效率的事情。2017年的核心目标依然是提高自己,但是会采用具体的量化的指标来代替模糊性描述。其实这就类似于我们在git commit时候,如果以git commit -m "fix some bugs"的形式commit,那么在后期这些descriptions并不会带给我们任何帮助。2016总结 2016年3月至6月我需要完成学校的课程,但是总体来说,课程的质量不算高,我没有在这些课程及考试...

  • Spring IoC容器初始化 — Resource定位源码分析

    在Spring IoC容器的设计中,有两个主要的容器系列。一个是实现了BeanFactory接口的简单容器系列,这系列容器只实现了容器基本的功能;另一个是ApplicationContext应用上下文,它在简单容器的基础上增加了许多面向框架的特性,同时对应用环境做了许多适配。IoC容器的初始化过程Spring IoC容器的初始化过程分为三个阶段:Resource定位、BeanDefinition的载入和向IoC容器注册BeanDefinition。Spring把这三个阶段分离,并使用不同的...

  • HashMap源码分析

    HashMap简介本文针对HashMap的源码分析基于JDK 7,JDK 8在HashMap的实现上有着较大幅度的改进和优化,这部分优化我将另起一篇来阐述。另外,本文仅分析HashMap众多方法中最常用的方法,其余方法有需要时再研究 :smile:。HashMap的继承关系如下。public class HashMap extends AbstractMap implements Map, Cloneable, ...