怎么判断网站是否被收录,广州站,丹阳市制作网站,asp.net 3.5网站开发全程解析 -----接Java进阶笔记#xff08;初级#xff09;-----
目录 集合多线程 集合 ArrayList 可以通过List来接收ArrayList对象#xff08;因为ArrayList实现了List接口#xff09; 方法#xff1a;接口名 柄名 new 实现了接口的类(); PS: List list new ArrayList();遍历…-----接Java进阶笔记初级-----
目录 集合多线程 集合 ArrayList 可以通过List来接收ArrayList对象因为ArrayList实现了List接口 方法接口名 柄名 new 实现了接口的类(); PS: List list new ArrayList();遍历方法1.使用迭代器Iterator遍历2.用for循环遍历3.用增强型for循环 LinkedList 实现了List接口实现了双向链表结构Deque可以很方便的在头尾插入删除数据 addFirst(),removeFirst() //头部插入删除 addLast(),removeLast() //尾部插入删除实现了Queue接口先进先出队列 FIFO offer() ----将元素添加到队尾 poll() ----取出第一个元素 peek() —获得第一个元素但不取出 二叉树排序: 选定一个根节点插入数据小、相同的放左边大的放右边采用中序遍历即 中间的数遍历后放在中间 HashMap HashMap储存数据的方式是—— 键值对键不能重复值可以重复 HashSet 元素不能重复没有按照元素的插入顺序排列不能通过get()方法获取元素遍历需要用到迭代器或增强for循环 Collection接口 Collection是 SetList Queue和 Deque的接口Collection是 集合的顶层接口不能被实例化 Collections Collections是一个类容器的工具类用于操作集合如listset常用方法 sort() -----对集合进行排序,默认升序排序reverse()-----反转集合中元素shuffle()----- 混淆集合中数据的顺序swap(List list,int i,int j)-----交换集合中i和j下标的数据 HashTable 和Hashtable一样都实现了Map接口都用键值对保存数据区别 HashMap可以存放 null值Hashtable不能存放null值HashMap不是线程安全的类Hashtable是线程安全的类 几种Set 参考链接 Comparable接口 实现Comparable接口可以强行对实现它的每个类的对象进行整体排序 泛型 把类型当作是参数一样传递在容器后面添加Type可以是类抽象类接口泛型类在类的声明后加上一个泛型转型 父类泛型不能转型为子类泛型子类泛型不可以转换为父类泛型 多线程 创建多线程 有3种方式创建多线程 继承线程类继承Thread并且重写run方法实现Runnable接口实现Runnable接口重写run方法 借助线程对象的start()方法启动一个新的线程new Thread(对象名).start()匿名类继承Thread,重写run方法直接在run方法中写业务代码 常用方法 sleep() -----当前线程休眠暂停join() -----加入到当前线程中setPriority() -----线程优先级setDaemon() -----守护线程 当所有的线程都是守护线程时当前进程结束 同步 使用synchronized关键字实现线程同步 synchronized(同步对象名称){ //此处的代码只有占有了同步对象后才可以执行 //在同一时间只能被一个线程占有 }如果一个类其方法都是有synchronized修饰的那么该类就叫做线程安全的类非线程安全的之所以会比线程安全的快是因为不需要同步省略了些时间StringBuffer 是线程安全的StringBuilder 是非线程安全的 单线程用StringBuilder会更快些多线程需要用StringBuffer保证数据的安全性借助Collections.synchronizedList可以把ArrayList转换为线程安全的List。 死锁 产生条件解决办法 1预防死锁破坏产生死锁的必要条件 2避免死锁例如银行家算法Banker Algorithm。 3定期运行检测死锁算法对系统的状态进行检测发现死锁便予以解除。 线程交互 this.wait()让占有this的线程等待并临时释放占用this.notify():唤醒等待在this的单个线程。this.notifyAll():唤醒等待在this的所有线程。wait方法和notify方法是Object上的方法,因为所有的Object都可以被用来作为同步对象 线程池