`
文章列表

Future使用小例

package com.test.current; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Scanner; import java.util.concurrent.Callable; import java.util.concurrent.Future; import java.util.concurrent.FutureTask; public class ...
一个指定目录下包含某个关键字的文件,输出文件路径及行号。   同时启动两组线程,一个向队列中添加文件,一个从队列中取文件,并在文件中查找关键字。     package com.test.current; import java.io.File; import java.io.FileInputStr ...
使用多线程模拟实现银行转帐功能,先看看未使用同步的代码:     package com.test.current; public class UnsynchBankTest { public static final int NACCOUNTS = 100;//帐户数 public static final double INITIAL_BALANCE = 1000;//初始金额 public static void main(String[] args) { Bank b = new Bank(NACCOUNTS, INITIAL_BALANCE); in ...

TreeSet小例

  package com.test.collframework; import java.util.Comparator; import java.util.Set; import java.util.TreeSet; /** * TreeSet是一个有序集合 */ public class TreeSetTest { public static void main(String[] args) { Set<Item> set = new TreeSet<Item>(); set.add(new Item("T ...
package com.test.collframework; import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; public class LinkedListTest { public static void main(String[] args) { LinkedList<String> aList = new LinkedList<String>(); aList.add("apple") ...
    HashMap简析之-HashCode冲突的解决 http://msnvip.iteye.com/blog/619032   深入理解HashMap(及hash函数的真正巧妙之处) http://www.360doc.com/content/10/0505/19/495229_26234886.shtml
HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。 1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。3.HashTable有一个contains(Object value),功能和contains ...
作者:汪海 (Wanghai) 日期:14-Aug-2005 出处:http://spaces.msn.com/members/wzwanghai/ Index Full Scan vs Index Fast Full Scan index full scan和index fast full scan是指同样的东西吗?答案是no。两者虽然从字面上看起来差不多, 但是实现的机制完全不同。我们一起来看看两者的区别在哪里? 首先来看一下IFS,FFS能用在哪里: 在一句sql中,如果我们想搜索的列都包含在索引里面的话,那么index full scan 和 index fast ful ...
在oracle9i中我们知道能够使用跳跃式索引扫描(index skip scan).然而,能利用跳跃式索引扫描的情况其实是有些限制的.从oracle的文档中我们可以找到这样的话:index skip scansindex skip scans improve index scans by nonprefix columns.often, scanning index blocks is faster than scanning table data blocks.skip scanning lets a composite index be split logically into sm ...
  1,运行时数据区域 根据JAVA虚拟机规范的规定:JAVA虚拟机所管理的内存将会包括以下几个运行时数据区域     程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器,通过改变计数器的值来选取下一条需要执行的字节码指令、分支、循环、跳转、异常处理、线程恢复等基础功能。每条线程都需要一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存,也是唯一不会出现OutOfMe
有人爱喝茶,有人爱喝咖啡,因为两者都含有咖啡因。   咖啡的冲泡方法:            茶的冲泡法: 1:把水煮沸                    1:把水煮沸 2:用沸水冲泡咖啡          2:用沸水浸泡茶叶 3:把咖啡倒进杯子   ...
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。   例如在香港的水货手机充电器插头无法适应大陆的插座,需要一个第三方转换器。这个转换器也就是适配器。 在 ...
用命令模式实现这样一个需求: 有个按钮,将一盏电灯的开和关动作都绑定在这个按钮上。另外还有一个undo按钮,可撤消之前的一个动作。       package com.headfirst.chapter6; public interface Command { public void execute(); public void undo(); }      下面这个电灯类,对应上面的图也就是接收者   package com.headfirst.chapter6; public class Light { public void on(){ ...
装饰者模式:动态地将责任附加到对象上,若到扩展功能,装饰者提供了比继承更有弹性的替代方案。   UML图   有这样一个需求,咖啡店出售各式咖啡,如深焙、低卡、摩卡等,也有各种调料,如牛奶、奶泡等。 咖啡店需要根据咖啡中所放入的不同调料收取不同的费用。用装饰者模式来实现   定义一个抽象组件   package com.headfirst.chapter3; /** * 定义了一个抽象类,用于表示组件,它定义了一个抽象方法cost */ public abstract class Beverage { String description; pub ...
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。  有这样一个需求: 一个气象站,它会提供气温,气压,湿度等气象数据,要实现一个显示当前气象状态的显示装置。 能显示当前气温、气压、湿度等。当气象站的数据一发生改变,就能通知显示装置。 使用观察者模式实现。   先看看观察者模式类图:   主题是一个接口,定义了注册观察者、删除观察者、通知方法 package com.headfirst.chapter2; public interface Subject {//主题 public void registerO ...
Global site tag (gtag.js) - Google Analytics