共享锁(Shared Lock)也叫做读锁(Read Lock),排它锁(Exclusive Lock)也叫做写锁(Write Lock)。
某一资源的读锁是共享的,或是说互补阻塞的。在同一时间,多个用户可以读取同一资源,二互不干扰。 More …
QUIC,即Quick UDP Internet Connection,类似于SPDY,同样也是由Google公司在现有已存协议之上进行了扩展设计,而旨在减少网络延迟。之前我曾介绍过SPDY的相关信息,SPDY工作在应用层,而这里的QUIC工作在传输层。虽然QUIC的名字暗示着它类似于一个被修改过的UDP协议,但它的目标却是优化或替换那些需要使用面向链接的应用程序中所采用的TCP协议。 More …
事务的特征ACID,即原子性、一致性、隔离性、持久性。
原子性(Atomic)保证一个事务为一个最小的单元,内部不可分割;
一致性(Consistency)保证事务中的每个操作线程不可单独提交,成功则一起提交,不成功则事务回滚;
隔离性(Isolation)保证不同事务间看到的数据视图相互独立,相互隔离(隔离级别可设置);
持久性(Durability)保证事务提交后数据会持久的保存下来; More …
想必用Java的人都用过JDK的容器类吧,什么List, Set, Map啦。每天这些代码在全世界成千上万的JVM里面运行,每天数以万记的程序员在使用这些类。你知道这些这么cool的代码是谁写的吗?是Joshua Bloch。他以前是在Sun工作,现在跳到Google了,Google是无敌了。他可是大师级别的人物了。虽说他是大师但是人家也在写代码,所以这样的人的文章必定是脚踏实地。而非有些只会动嘴皮子,开会的时候在白板上画出一堆框框线线然后让别人来coding的“专家”。虽然自己写了多年Java也设计了不少东西,但是自己从他的经验和设计上还也实实在在受到了不小的帮助。虽说这是01年的采访,但是内容仍旧值得一读,我把这篇采访翻译了一下(Joshua Bloch: A conversation about design – JavaWorld)。下面就来听听别人采访他关于设计方面的对话。作为Java开发者,我把自己的注释用/**/来标示:) More …
在Java语言中,equals()和hashCode()两个函数的使用是紧密配合的,你要是自己设计其中一个,就要设计另外一个。在多数情况 下,这两个函数是不用考虑的,直接使用它们的默认设计就可以了。但是在一些情况下,这两个函数最好是自己设计,才能确保整个程序的正常运行。最常见的是当 一个对象被加入收集对象(collection object)时,这两个函数必须自己设计。更细化的定义是:如果你想将一个对象A放入另一个收集对象B里,或者使用这个对象A为查找一个元对象在收集对象B里位置的钥匙,并支持是否容纳,删除收集对象B里的元对象这样的操作,那么,equals()和hashCode()函数必须开发者自己定义。其他情 况下,这两个函数是不需要定义的。 More …
经常在论坛上面看到覆写hashCode函数的问题,很多情况下是一些开发者不了解hash code,或者和equals一起用的时候不太清楚为啥一定要覆写hashCode。 More …
话说EmEditor我用了好几年。在我看来对于非专业程序员,EmEditor可以称得上是Win平台下最为完美的编辑器,因为它在速度、功能、易用性和扩展性上都达到了相当平衡的高水准。 More …
Tracert(跟踪路由)是路由跟踪公用程式,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP错误消息来确定从一个主机到网路上其他主机的路由。 More …