2014-11-04 Java

1. 子类和父类的关系是 is-a,父类和子类的关系不是 has-a


2.  List<?extendsString> list ?表示元素是String 类型或者他的子类(Part B. Question11)


3. Arrays.binarySearch(Object[]a, Object key)  (question 16)

   使用该搜索方法前要先对a[]进行排序。 如果搜素的key包含在数组中,则返回其在数组中的索引值,若数组中不含key,则返回其应当被插入位置的索引值。会抛出ClassCastException


4.  Treeset  (question17)

       Treeset在存储对象的时候会自动为对象排序。 (Integer 和 String 有默认顺序, 若是自定义的类想要通过Treeset排序,则该类需要先实现Comparable接口,重写compareto方法)


5. Thread (question19)

    start() : Causes this thread to begin execution; the Java Virtual Machine calls the run method of this thread.

    join() : Waits for this thread to die.


6.  (转载)JAVA的synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。在进一步阐述之前,我们需要明确几点:

A.无论synchronized关键字加在方法上还是对象上,他取得的锁都是对象,而不是把一段代码或函数当作锁――而且同步方法很可能还会被其他线程的对象访问。
B.每个对象只有一个锁(lock)和之相关联。
C.实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。


     synchronized关键字的几种使用情况。

     1)放在方法的返回类型和access privilege之间。


Public synchronized void method(){}这是同步方法,这时synchronized锁定的是调用这个同步方法对象。上边的示例代码等同于如下代码:

  1. public void method()   
  2. {   
  3. synchronized (this)      //  (1)   
  4. {   
  5.        //…..   
  6. }   
  7. }   


     2)同步块

  1. public void method(SomeObject so) {   
  2. synchronized(so)   
  3. {   
  4.        //…..   
  5. }   
  6. }   

这时,锁就是so这个对象


     3)将synchronized作用于static 函数

  1. Class Foo   
  2. {   
  3. public synchronized static void method1()   // 同步的static 函数   
  4. {   
  5. //….   
  6. }   
  7. public void method2()   
  8. {   
  9.        synchronized(Foo.class)   //  class literal(类名称字面常量)   
  10. }   
  11.        }   

代码中的method2()方法是把class literal作为锁的情况,他和同步的static函数产生的效果是相同的,取得的锁很特别,是当前调用这个方法的对象所属的类(Class,而不再是由这个Class产生的某个具体对象了)。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值