java.3

线程

Runable接口是线程工作的内容,只有一个方法就是run() Thread创建了一个线程,start之后启动线程

public class MyRunnable implements Runnable{
public void run(){  
}
}

Runnable threadJob= new MyRunnable();
Thread myThread=new Thread(threadJob);
myThread.start()

线程状态 可执行/执行中/阻塞

Thread.sleep()确保县城在一段时间内不会被唤醒

线程调用start()之后,虽然对象还是会在堆上,但是已经失去了线程的可执行性

thread.setName() Thread.currentThread().getName()

synchronized 修饰的方法叫做同步化的方法。每一个java对象都有一个锁,当对象有同步化的方法的时候,线程只有在取得要是的情况下才能进入线程。

synchronized(this){...}可以只是给部分代码块加锁

同步化会减慢程序的执行速度,也可能会导致死锁

注意可以在一个类的内部再次定义一个内部类,这个内部类只有这个类本身才能使用

集合类Collection

1,List就好像是数组一样

ArrayList 按照加入的顺序存储的

LinkedList 底层类似于链表,有大量删除插入的时候用

Vector

2,Set集合数据不能重复,顺序跟你插入的顺序没关系

Set是如何判断重复的?1,判断hashcode,hashcode一样的话在调用equals的方法判断对象是不是一样。所以有些时候你要放入Set的数据有类似于主关键字这样的限制的话,要重写这两个方法

TreeSet 自动排序(唯一的一个)所以元素必须实现Comparable接口 或者呢 写一个实现了comparator接口的类,传入到TreeSet的构造函数里面也可以

HashSet

LinkedHashSet

Map key-value key不能重复

可以用Collection.sort(List list)对List排序

泛型

class x<T>{
   void xx(T t){
  }
}
x xx<String>=new xx<String>;

public <T extends Animal> void x(ArraList<T> t)

public void x(ArraList<"? extends Animal>" t)

这两种写法表示集合里面的元素必须是继承或者实现自Animal的

posted @ 2017-01-02 21:19  Zview  阅读(144)  评论(0编辑  收藏  举报