摘要: ArrayList类是java集合框架出现之后取代Vector类的 二者底层原理都是基于数组的算法,一模一样。 区别: Vector:所有的方法都使用了synchronize修饰符 线程安全但是性能较低,适用于多线程环境。 ArrayList:所有的方法都没使用synchronize修饰符 线程不安 阅读全文
posted @ 2017-03-17 17:24 wenxudong 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 栈(Stack):数据结构的一种存储特点先进后出 官方建议:使用栈尽量使用Deque接口及其实现提供了LIFO堆栈操作的更完整和一致的set,应该优先使用此set,而非此类。 例如:Deque<Integer> stack = new ArrayDeque<Integer>(); 阅读全文
posted @ 2017-03-17 16:52 wenxudong 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 在JDK2之前(在Java集合框架之前),要存储多个数据,此时存在一个叫Vector类。 Vector类底层其实就是一个Object数组,Vector类中的方法是支持同步(方法使用 synchronized修饰)的。 Vector类设计原理:查看源代码 Vector类存储原理: 通过源码分析,发现V 阅读全文
posted @ 2017-03-17 16:39 wenxudong 阅读(633) 评论(0) 推荐(0) 编辑
摘要: Java集合框架的由来: 其实在Java2之前,Java是没有完整的集合框架的。他只有一些简单的可以自扩展的容器类,比如Vector,Stack,Hashtable等。 为什么存在容器类:容器类(集合类)可以存储多个数据,既然数组可以存储多个数据,为什么需要定义容器类 数组的弊端: 1.长度是不可变 阅读全文
posted @ 2017-03-17 15:33 wenxudong 阅读(744) 评论(0) 推荐(0) 编辑
摘要: 什么是数据结构: 数据结构是计算机存储、组织数据的方式。 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术相关。 常见的数据结构,数组(Array),栈(Stack),链表(Linked 阅读全文
posted @ 2017-03-16 15:59 wenxudong 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 在JDK的java.util包中提供了Timer类,可以定时执行特定的任务 TimerTask类表示定时器执行的某一项任务 常用方法: schedule(TimerTask task,long delay,long perlod); schedule(TimerTask task,long dela 阅读全文
posted @ 2017-03-16 15:09 wenxudong 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 线程休眠:让执行的线程暂停一段时间,进入计时等待状态。 方法:static void sleep(long millis) 调用sleep后,当前线程放弃CPU,在指定时间段之内,sleep所在线程不会获得执行的机会 此时状态下的线程不会释放同步锁/同步监听器 该方法更多的用于模拟网络延迟让多线程并 阅读全文
posted @ 2017-03-14 16:08 wenxudong 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 生命周期:线程也是有生命周期的,也是存在不同的状态的,状态相互之间的转换。 新建状态,就绪状态,运行状态,阻塞状态,死亡状态。 有人把阻塞状态,等待状态,计时等待状态合称为阻塞状态。 线程对象的状态存放在Thread类的内部类(State)中: 注意:Thread.State类其实是一个枚举类。因为 阅读全文
posted @ 2017-03-12 11:56 wenxudong 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 多线程通信的时候很容易造成死锁,死锁无法解决只能避免: 当A线程等待由B线程持有的锁,而B线程正在等待A线程持有的锁时,发生死锁现象,JVM不检测也不避免这种情况,所以程序员必须保证不导致死锁。 避免死锁法则:当多个线程都要访问共享的资源A,B,C时,保证每一个线程都按照相同的顺序去访问他们,比如都 阅读全文
posted @ 2017-03-12 10:55 wenxudong 阅读(212) 评论(0) 推荐(0) 编辑
摘要: wait和notify方法,只能被同步监听锁对象来调用,否则报错。 那么问题来了,Lock机制根本就没有同步锁了,也就没有自动获取锁和自动释放锁的概念。 因为没有同步锁,所以Lock机制不能调用wait和notify方法。 解决方案:java5中提供了Lovk机智的同时提供了处理Lock机制的通信控 阅读全文
posted @ 2017-03-12 10:34 wenxudong 阅读(176) 评论(0) 推荐(0) 编辑