- 博客(31)
- 收藏
- 关注
原创 Ruby & MySQL
require "rubygems"require 'mysql'db = Mysql.connect('localhost', 'root','******','ruby')db.query("insert into people values(null,'卡夫',22)")begin query = db.query('select * from peop...
2012-03-15 22:50:47 107
原创 YAML
require 'yaml'class Person attr_accessor :name, :ageendfred = Person.newfred.name = "Fred Bloggs"fred.age = 45laura = Person.newlaura.name = "Laura Smith"laura.age = 23t...
2012-03-14 23:20:07 119
原创 PStore
class Person attr_accessor :name, :job, :gender, :ageendfred = Person.newfred.name = "Fred Bloggs"fred.age = 45laura = Person.newlaura.name = "Laura Smith"laura.age = 23r...
2012-03-14 22:56:45 480
原创 = = 复习下冒泡法
public static void bubbleSort(int[] a){ for(int i=0; i<a.length-1; i++){ for(int j=0;j<a.length-i-1;j++){ if(a[j]>a[j+1]){ int tmp = a[j]; a[j] = a[j+1]; a[j+...
2012-02-18 23:26:07 108
原创 仿真[汽车制造]
class Car{ private final int id; private boolean engine = false, driveTrain = false, wheels = false; public Car(int idn){ id = idn; } public Car(){ id = -1; } publi...
2012-02-13 01:26:37 206
原创 弹出框
转自http://blog.csdn.net/arthur613/article/details/6163953 1.thickbox 目前用的比较多的,最新版本是thickbox3.1下载地址:http://jquery.com/demo/thickbox/#examples 2.colorBox 官方网站:http://colorpowered.com/colorbo...
2012-02-10 00:08:10 76
原创 线程例子[Condition, SignlAll, await]
package concurrency.waxomatic;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Cond...
2012-02-09 22:05:46 167
原创 生产者消费者[简单示例]
class Meal{ private final int orderNum; Meal(int orderNum){ this.orderNum = orderNum; } public String toString(){ return "Meal " + orderNum; }}class WaitPerson implements Runn...
2012-02-09 21:38:54 80
原创 泛型[创建类型实例]
public Class Erased<T>{ private final int SIZE = 100; public static void f(Object arg){ if(arg instanceof T){} // Error T var = new T(); // Error T[] array = new T[SIZE]; // Err...
2012-02-06 01:01:44 119
原创 多路分发3
使用常量相关的方法 常量相关的方法允许我们为每个enum实例提供方法的不同实现,这使得常量相关的方法似乎是实现多路分发的完美解决方案。不过,通过这种方式,enum实例虽然可以具有不同的行为,但他们任然不是类型,不能将其作为方法签名中的参数类型来使用。最好的办法是将enum用在switch语句中 import static enumerated.Out...
2012-02-05 23:16:05 95
原创 多路分发2[使用enum分发]
直接将RoShamBo1.java翻译为基于enum的版本是有问题的,因为enum实例不是类型,不能将enum实例作为参数的类型,所以无法重载eval方法。 利用构造器来初始化每个enum实例,并以"一组"结果作为参数。二者放在一块,形成了类似查询表的结构。 public interface Competitor<T extends Competito...
2012-02-05 18:09:27 188
原创 多路分发
多路分发 Number.plus(Number) Number是各种数字对象的超类。 当声明a.plus(b)时,并不知道a,b的确切类型。如何正确地交互?Java只支持单路分发,如果要执行的操作包含了不止一个类型未知的对象时,那么Java的动态绑定机制只能处理其中一个的类型。所以必须自己来判定其他的类型,从而实现自己的动态绑定行为。 解决的办法就是多路...
2012-02-05 02:06:08 196
原创 使用Enum的自动贩卖机
public enum Input { NICKEL(5), DIME(10), QUARTER(25), DOLLAR(100), TOOTHPASTER(200), CHIPS(75), SODA(100), SOAP(50), ABORT_TRANSACTION{ public int amount(){ //Disallow throw new Ru...
2012-02-04 13:52:08 149
原创 使用enum的责任链
package enumerated;import java.util.Iterator;class Mail { enum GeneralDelivery{ YES, NO1, NO2, NO3, NO4, NO5 } enum Scannability{ UNSCANNABLE, YES1, YES2, YES3, YES4 } enum ...
2012-02-04 12:39:55 194
原创 枚举类Enum,EnumSet,EnumMap
EnumSet与HashSet相比,非常快。 public enum AlalmPoints{ STAIR1, STAIR2, LOBBY, OFFICE1, OFFICE2;}public class EnumSets{ EnumSet<AlarmPoints> points = EnumSet.noneOf(AlarmPoint.clas...
2012-02-04 02:00:56 124
原创 枚举类enum
一般来说,我们希望每个美剧实例能够返回对自身的描述,而不仅仅只是默认的toString()实现,这只能返回枚举实例的名字。为此,你可以提供一个构造器,专门负责处理这个额外的信息,然后添加一个方法,返回这个描述信息。 注意: 下面代码提供了个 private 的构造函数, 而且里面的参数是 额外信息的类型 public enum OzWitch { WE...
2012-02-03 15:00:37 99
原创 类的简化历[从内部类到匿名内部类]
Version1:public class DirList{ public static void main(String[] args){ File path = new File("."); String[] list; if(args.length == 0) list = path.list(); else list = pa...
2012-02-02 12:41:45 100
原创 持有引用java.lang.ref 和 WeakHashMap
Thinking in java P554 持有引用 如果想继续持有对某个对象的引用,希望以后能够反问到该对象, 但是也希望能够允许垃圾回收器是否它,这是就应该使用Reference 对象。这样,可以继续使用改对象,而再内存消耗完时允许是否它。 以Reference对象作为你和普通引用的媒介,另外,一定不能有 普通的引用指向那个兑现g.zheyang就能达...
2012-02-02 01:27:22 86
原创 Collections快速报错 fial-fast
{ public static void main(String[] args){ Collection<String> c = new ArrayList<String>(); Iterator<String> it = c.iterator(); c.add("An Object"); try{ String s =...
2012-02-02 00:46:56 139
原创 散列HashCode
散列的价值在于速度: 散列使得查询快速,由于瓶颈位于键的查找速度,因此解决方案之一就是保持键的排序状态,然后使用Collections.binarySearch()进行查询. 散列更进一步,它将键保存在某处,以便能够很快找到。存储一组元素最快的数据结构是数组,所以使用它来表示键的信息(这里说的是键的信息,而不是键本身)。但是因为数组不能够调整容量,因此就有一个问题:我们...
2012-02-01 14:04:50 80
原创 使用散列数据结构注意点
Goundhog自动继承基类Object,所以这里使用Object的hashCode()方法生成散列码,而它默认是使用对象的地址计算散列码。所以查找不到。 可能你会认为,只需编写恰当的hashCode()方法的覆盖版本即可。但是它任然无法正常运行,除非你同时覆盖equals()方法,它也是Object的一部分。HashMap使用equals()判断当前键是否与表中存在...
2012-02-01 01:32:06 77
原创 Set注意点
如果我们尝试着将没有恰当支持不许的操作的类型用于需要这些方法的Set,那么久会有大麻烦了。对于没有重新定义hashCode()方法的,如果将他们放置到任何散列实现中都会产生重复值,这样就违反了Set的基本契约。如果我们尝试着在TreeSet中使用没有实现Comparable的类型,那么将抛出异常 ...
2012-02-01 01:31:06 87
原创 享元Map
这里之所以叫享元,注意static关键字。 定制了Entry 和 EntrySet public class Countries { public static final String[][] DATA = { {"CHINA","BEIJING"} }; private static class FlyweightMap extends AbstractM...
2012-01-30 00:28:21 81
原创 深入容器Map
Map生成器 对Map的使用相同的方式,需要一个Pair类,为了组装Map,每次调用 Generator的next()方法都必须产生一个键值对。 public class Pair<K,V> { public final K key; public final V value; public Pair(K k, V v){...
2012-01-19 15:12:51 64
原创 深入容器List
一种Generator解决方案: 所有Collection子类型都有一个接受另一个Collection对象的构造器, 用所接受的Collection对象中的元素来填充新的容器。为了更加容易 地创建测试数据,我们需要做的是构建接受Generator和quantity 数值并将他们作为构造器参数的类。 public class CollectionDat...
2012-01-19 14:40:10 70
原创 泛型数组
不能创建泛型数组,但能通过转型来赋予public class ArrayOfGenericType<T>{ T[] array; //OK public ArrayOfGenericType(int size){ //! arrya = new T[size]; //Illegal array = (T[])new Object[size] } /...
2012-01-19 00:57:49 65
原创 类型信息
初始化有效地实现了尽可能的"惰性"。从对 initable引用的创建中可以看到,仅使用.class语法来获得对类的引用不会引发初始化。但是,为了产生Class引用,Class.forName()立即就进行了初始化,就想在对initable3引用的创建中看到的。 如果一个static final值是"编译期常量",就想Initable.staticFinal那样,那么这个...
2012-01-18 15:05:04 85
原创 String
当为一个类编写toString()方法时,如果字符创比较简单,那就可以信赖编译器,它会为你合理地构造最终的字符串结果。但是如果要在toString()方法中使用循环,那么最好自己创建一个StringBuilder,用它来构造最终的结果 public class InfiniteRecursion{ public String toString(){ reture...
2012-01-18 01:45:06 72
原创 内部类
普通内部类的字段与方法, 只能放在类的外部层次上,所以普通的内部类不能有static数据和static字段,也不能包含嵌套类。但是嵌套类可以包含所有这些东西 使用内部类最吸引人的原因是: 每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经 继承了某个(接口的)实现,对于内部类都没有影响。 情况1: 必须在一个类中以某种方式实现2个接...
2012-01-13 01:16:33 85
原创 工厂与匿名内部类
// 匿名内部类 & 工厂方法 interface Service{ void method1(); void method2(); } interface ServiceFactory{ Service getService(); } class Implementation1 implements Service{ pr...
2012-01-12 02:01:53 104
原创 工厂与接口
接口和工厂模式interface Service{ void method1(); void method2();}interface ServiceFactory{ Service getService();}class Implementation1 implements Service{ Implementation1(){}; public v...
2012-01-08 22:10:37 91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人