Memo

  • java

1.         ArrayList, Vector, LinkedList

ArrayList Vector使用数组方式,LinkedList使用双向链表实现存储

Vector线程安全

 

2.         HashMapHashtable

HashMapHashtable的轻量级实现(非线程安全)

HashMap允许null(key/value)

HashMapcontains方法在Hashtable中对应的为containsKeycontainsValue

HashTablehash数组默认大小是11,增加的方式是 old*2+1.HashMaphash数组的默认大小是16,而且一定是2的指数.

都实现Map接口

 

3.         final, finalize, finally

final: 值不可变,方法不可覆盖,类不可继承

finalize: Object的方法,GC时会被调用

 

4.         instanceof运算符可以用来判断某对象的类是否实现了接口

 

5.         switch(key), key为整数,包括byte,char,short,int,不包括long,float,string

 

6.         try-finallytry块内return会在return之前执行finally,finally中一般不包含return,若包含会覆盖其它处的return

 

7.         equals()hashCode()

equals()相等 => hashCode()相等

equals()不等 !=> hashCode()不等

hashCode()相等 !=> equals()相等

hashCode()不等 => equals不等

 

8.         线程与同步

synchronized, wait/notify

wait():使一个线程处于等待状态,并且释放所持有的对象的lock.

sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常.

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级.

notityAll():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争.

  • Android

    1. RPC

1)       创建aidl文件(IService.aidl).IService.java(包括IService接口及IService.Stub),IService.Stub为public static abstract class,继承IBinder并实现IService接口

2)       新建类继承Service,重写onBind(Intent)

3)       定义内部类(继承自IService.Stub),并在onBind中返回该类实例

4)       调用bindService(Intent, ServiceConnection, int flags)并在onServiceConnected中保存返回的IBinder,可用IService.Stub.asInterface(IBinder)转化为IService接口

5)       unbindService(ServiceConnection)断开连接

  • Other

  1. 大小端
大端:高位在前 小端:低位在前(x86 pc)
posted @ 2011-09-15 00:15  yiyayiyayo  阅读(227)  评论(0编辑  收藏  举报