代老师的博客 https://github.com/daichangya

归档

2019 年 06 月

2019-06-12

自开始练习瑜伽已经半年多了,半年多来尽管体重没有减轻,但是感觉整个身体紧实了很多,隐约可见腹肌和肌肉了,尽管看上去有点壮,我也开始渐渐学会欣赏这种力量美。瑜伽带给我,更多的是心理上的慰藉。很幸运参加了瑜伽教练班的培训,让我有机会接触到瑜伽更深层次的理论,而不是简单的摆动作和做体式,而是在享受和体会瑜

2019 年 04 月

java.util包中包含了一系列重要的集合类。本文将从分析源码入手,深入研究一个集合类的内部结构,以及遍历集合的迭代模式的源码实现内幕。 下面我们先简单讨论一个根接口Collection,然后分析一个抽象类AbstractList和它的对应Iterator接口,并仔细研究迭代子模式的实现原理。 本文讨论的源代码版本是JDK 1.4.2,因为JDK 1.5在java.util中使用了很
在Java编码中,我们容易犯一些错误,也容易疏忽一些问题,因此笔者对日常编码中曾遇到的一些经典情形归纳整理成文,以共同探讨。 1. 纠结的同名 现象 很多类的命名相同(例如:常见于异常、常量、日志等类),导致在import时,有时候张冠李戴,这种错误有时候很隐蔽。因为往往同名的类功能也类似,所以IDE不会提示warn。 解决 写完代码时,扫视下import部分,看看有
作为140个字的缔造者,twitter太简单了,又太复杂了,简单是因为仅仅用140个字居然使有几次世界性事件的传播速度超过任何媒体,复杂是因为要为2亿用户提供这看似简单的140个字的服务,这真的是因为简单,所以复杂。今天就结合网络上的一些资料,来浅谈一下我对twitter网站架构的学习体会,希望给路过的朋友一点启示.......
最近参加公司内一个技术规划评审过程中,通过老板对台上的架构师的质疑,学习到几个做技术规划的要点,归纳如下: 1)紧扣业务 虽然是做技术规划,但如果脱离了业务支撑,是引起不了老板兴趣的 2)从实际问题出发 老板只会为解决实际问题的技术规划买单。规划的开头最好能从实际问题出发,比较容易引起老板的注意 3)重点在落地 只有能落地的技术才有说服力,老板不会被天花乱坠的技
导读:本文是从《Good Programmers Make Bad Designers》这篇文章翻译而来,译文来自外刊IT评论《好的程序员做不出好的软件设计》。 文章内容如下: 你不能看到一个程序员还不错,就把他推到系统分析师、软件设计师或软件架构师的位置上。 如果你在团队或公司里寻找一个能胜任软件架构师或设计师这样重要位置的人时,首先出现在脑子里的想法通常是在程序员中选一个最好
深入理解项目管理之需求
二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 首先创建节点类,并在里面添加了一个创建树的方法,调用后就可以返回一个包含7个节点的二叉树。 点击(此处)折叠或打开
最近要做一个Python的基于Eclipse的界面设计器,因此我对各种GUI设计工具做了一下分析,发现GUI设计工具也有一个门派。       在那个懵懂的年代,一切界面代码都是要开发人员手工书写,这无疑增加了开发难度,Delphi、VB等工具的出现扭转了这个局面,使用这些工具开发人员只要在控件面板上拖拖拽拽就可以完成界面的设计,做到了“所见即所得”的开发方式。仔细分析,GUI设计工具有如下几个
了解未知 Swing 代码的工具和方法 简介: 当您需要使用或维护其他/她 Java™ 开发人员的代码时,调试和测试有助于您了解其运作方式。不过对于可视化代码,这些强大的实践方法更难运用,除非您有合适的工具。本文介绍的两个开源工具 — Swing Explorer 和 FEST-Swing — 能使 Swing UI 调试
简介: 介绍 spring 3.1 激动人心的新特性:注释驱动的缓存,本文通过一个简单的例子进行展开,通过对比我们原来的自定义缓存和 spring 的基于注释的 cache 配置方法,展现了 spring cache 的强大之处,然后介绍了其基本的原理,扩展点和使用场景的限制。通过阅读本文,你可以短时间内掌握 spring 带来的强大缓存技术,在很少的配置下即可
随着 AOP(Aspect Oriented Programming)的发展,代码动态生成已然成为 Java 世界中不可或缺的一环。本文将介绍一种小巧轻便的 Java 字节码操控框架 ASM,它能方便地生成和改造 Java 代码。著名的框架,如 Hibernate 和 Spring 在底层都用到了 ASM。比起传统的 Java 字节码操控框架,BCEL 或者 SERP,它具有更符合现代软件模式的编
1、软件长期运营存在什么问题   一个大规模的客户端软件的生命周期中,我们可以把它分为两个比较粗的时期。一个是前期的搭建软件的时期,即从无到有的时期;第二个是搭建完成之后,进入的一个稳定的运营时期。第二个时期才是最关键的,在这个时期我们会持续的迭
轻松实现多核时代的并行计算 随着多核时代的来临,软件开发人员不得不开始关注并行编程领域。而 JDK 7 中将会加入的 Fork/Join 模式是处理并行编程的一个经典的方法。虽然不能解决所有的问题,但是在它的适用范围之内,能够轻松的利用多个 CPU 提供的计算资源来协作完成一个复杂的计算任务。通过利用 Fork/Join 模式,我们能够更加顺畅的过渡到多核的时代。本文将介绍使用
用 Eclipse 插件提高代码质量
也许你是一位项目经理,也许你是一位项目骨干成员,或者开发小组长。在我发表“如何提高代码质量”的这一系列文章后,有许多网友都向我抱怨,说他无法把握整个项目组成员的代码质量。我想,这也是所有项目组普遍存在的问题吧,它通常表现为以下几个问题:  
究竟什么是内存模型?其它语言,像C++,有内存模型吗?JSR133是什么?重排序意味着什么?老的内存模型有什么问题?未正确同步是什么意思?同步做了什么?final字段的值是如何看起来会变的?在新的JMM下final
每一个程序员都有改变世界的梦想,他们不甘平凡,他们想要与众不同,他们想要创立世界上最酷的公司,那具体该如何做呢?风靡全球的《Rework》将告诉你答案。 37signals是一家很特别的公司,他们有很独特的理念。虽然他们的团队只有16人,但他们的几个产品每年都会带来相当可观的利润。他们反对风险投资,反对扩大规模,反对堆砌功能。如果让我用一个词形容他们的话
同步状态 AQS采用的是CLH队列,CLH队列是由一个一个结点构成的,前面提到结点中有一个状态位,这个状态位与线程状态密切相关,这个状态位(waitStatus)是一个32位的整型常量,它的取值如下:
keytool -genkey -keystore capture.store -alias capturekeytool -export -keystore capture.store -alias capture -file capture.cerjarsigner -keystore capture.store  capture.jar capture