- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 国内外主流的安卓应用商城
移动应用开发是大势所趋,手机应用发布最好还是通过主流的App Store,他们提供了良好的平台帮助我们管理,分发应用。附件中搜集了国内外主流的App Market的资源,希望对大家有用。...
2014-03-29 10:51:38 317
原创 由浅入深Java线程之同步(一)
在并发编程中经常会碰到多个执行线程共享资源的问题。例如多个线程同时读写文件,共用数据库连接,全局的计数器等。如果不处理好多线程之间的同步问题很容易引起状态不一致或者其他的错误。 同步不仅可以阻止一个线程看到对象处于不一致的状态,它还可以保证进入同步方法或者块的每个线程,都看到由同一锁保护的之前所有的修改结果。处理同步的关键就是要正确的识别临界条件(critical section...
2014-03-12 09:30:50 106
原创 傻瓜学Bash - Test及相关的比较操作
一个if/then 结构可以测试命令的返回值是否为0(因为0 表示成功),如果是的话,执行更多命令.有一个专用命令"["(左中括号,特殊字符).这个命令与test 命令等价,但是出于效率上的考虑,它是一个内建命令.这个命令把它的参数作为比较表达式或是文件测试,并且根据比较的结果,返回一个退出码. ((...))和let...结果也能够返回一个退出码,当它们所测...
2014-03-07 09:41:27 125
原创 设计模式之单例
单例模式是使用最为普遍的模式之一。它属于创建模式,确保系统中该类型的类只被实例化一次。 也许有误解,认为单例是在jvm进程中只有一个实例,其实是在同一个Classloader下面仅被实例化一次。Singleton通常用来表示本质上唯一的系统组件,比如文件系统,窗口管理器,系统全局的配置之类的。 在Java语言中,单例能带来一些好处: 1. 对于频繁使用的对象,可以省略创建对象所花费的时间,特别...
2014-03-06 09:03:37 119
原创 由浅入深Java线程之uncontrolled exceptions
前两天翻阅《Effective Java》发现一条提示慎用线程组。ThreadGroup提供的很多功能的实现是有瑕疵的。例如,我们可以调用activeCount获得该组中活动线程的数量,一旦这个数组进行了分配,并用enumerate方法遍历,如果线程数增加了,就有可能忽略掉调用activeCount后新增的线程。关于处理线程组逻辑,可以用线程池的executor代替。 也许Thread...
2014-03-03 17:14:45 120
原创 傻瓜学Bash - 退出和退出状态
学过C语言都知道,我们用exit来返回一个状态,Bash也是一样,这样父进程会判断子进程是否可用。 一个良好的习惯就是在脚本结束时都返回状态。成功返回0,非0值一般对应一个错误码。 当一个脚本以不带参数 exit 来结束时,脚本的退出状态就由脚本中最后执行命令来决定. $?读取最后执行命令的退出码.函数返回后,$?给出函数最后执行的那条命令的退出码.这种给函数返回值的方法是 B...
2014-03-03 11:09:09 1680
原创 由浅入深Java线程之ThreadGroup
Java并发包里面提供了ThreadGroup类可以帮助我们有效地管理线程组。让我们来看一个生动的例子. Java线程组可以有线程对象或者子线程组组成。也就是说ThreadGroup可以是产生线程树。 让我们看一个简单的例子,这个例子模仿一个搜索任务,将启动10个线程遍历获取指定目录下面的excel文件列表,一旦有一个线程完成遍历,将中断其余的9个任务。[code="java...
2014-02-28 18:02:36 111
原创 由浅入深Java线程之ThreadLocal
还记得Java并发最佳实践有一条提到尽量不要在线程间共享状态。但我们在实现一个thread或者runnable接口的时候很容易放这个错误,导致一些诡异的问题。 让我们看下面这个例子:[code="java"]public class UnsafeTask implements Runnable { private Date startDate; @Override...
2014-02-27 17:51:47 159
原创 类和接口 - 包装类
继承固然非常强大,但我们不能滥用继承,如使用不当,则会引起诸多问题.只有当子类和超类之间确实存在"is-a"关系的时候,使用继承才是恰当的.即便如此,如果子类和超类在不同的包中,并且超类不是为了继承而设计的,那么继承将会是脆弱的.此时,我们应该考虑用包装类,一复合和转发机制来代替继承. 让我们来看个具体的例子: 我们假设程序用了个HashSet, 我们想统计一个HashSet对象创建以来...
2014-02-26 21:34:45 121
原创 遵守equals和hashCode方法的通用约定 (2)
如前文所述,在覆盖了equals方法的类中,也必须覆盖hashCode方法。否则违反了Object.hashCode的通用约定会导致该类无法和基于散列的集合(HashMap,HashSet和HashTable)一起正常使用。 如下约定内容摘自Object规范: 1. 在应用程序中,只要对象的euqals方法的比较操作所用的信息没有修改,那么对于同一个对象的调用多次hashCode,...
2014-02-25 11:37:26 250
原创 遵守equals和hashCode方法的通用约定 (1)
覆盖equals方法和hashCode方法看似简单,但其实不然,如果没有按照jdk的通用规范去覆盖,那么基于这些约定的类将可能无法正常工作,例如基于散列的集合类HashMap和HashSet. 对于值类,我们通常需要覆盖Object.equals方法,因为我们希望通过equals方法知道它们在逻辑上是否相等.相应的这个类的实例可以被用作map的key,或者set的元素的时候才会表现出预期...
2014-02-25 10:48:38 272
Javascript
2013-02-04
SOA Cookbook
2013-02-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人