摘要: 以下内容参考java编程思想-4,jdk版本为jdk5.0,有点老-_-||| 什么是注解 JAVA SE5引入,也称元数据,可以直接添加到代码中,用来完整描述程序所需的信息,而这些信息是无法用Java来表达的; 内置注解 jdk5.0中内置了三种标准注解和四种元注解; 三种标准注解,定义在java 阅读全文
posted @ 2016-03-28 15:24 风一样的码农 阅读(1355) 评论(0) 推荐(0) 编辑
摘要: 线程状态 新建状态 线程被创建时,会短暂的处于这种状态。处于这种状态的线程已经分配了必须的系统资源,有资格获得cpu时间了,等待调度器把它转变为可运行状态或阻塞状态; 就绪状态 在这种状态下,只要调度器把时间片分配给线程,就可以马上运行; 阻塞状态 线程因为某个条件未满足,阻止了它的运行;这种状态会 阅读全文
posted @ 2016-03-27 13:38 风一样的码农 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 什么是共享资源 先了解下JAVA程序在运行时内存的分布,由以下部分组成 注意上面标红的堆和方法区的数据,是多个线程的共享的资源,会出现多个线程访问共享资源的情况;如多个线程访问同一个对象的成员变量,多个线程访问静态全局变量等... 多个线程不正确的访问共享资源 举个例子,多个线程访问同一个对象的情况 阅读全文
posted @ 2016-03-24 19:35 风一样的码农 阅读(1305) 评论(0) 推荐(0) 编辑
摘要: 基本线程机制 一个程序可以被划分为多个独立的任务,每个独立的任务可以由线程来驱动执行; 一个进程可以包含若干个线程,即拥有若干个并发执行的任务,在程序运行时,CPU时间被划分成片段分配给所有的线程; 在单处理器的机器上使用多线程可以提高性能的原因在于任务阻塞; 为机器增加处理器可以显著加快使用多线程 阅读全文
posted @ 2016-03-23 11:11 风一样的码农 阅读(1886) 评论(3) 推荐(3) 编辑
摘要: 以下内容基于jdk1.7.0_79源码; 关于HashSet、LinkedHashSet、TreeSet Set接口的实现类,最大特点是不允许出现重复元素; HashSet:基于HashMap实现,一个性能相对较好的Set; LinkedHashSet:基于LinkedHashMap实现,一个保存了 阅读全文
posted @ 2016-03-20 12:34 风一样的码农 阅读(2062) 评论(0) 推荐(0) 编辑
摘要: 以下内容基于jdk1.7.0_79源码; 什么是EnumMap Map接口的实现,其key-value映射中的key是Enum类型; 补充说明 其原理就是一个对象数组,数组的下标索引就是根据Map中的key直接获取,即枚举中的ordinal值; 效率比HashMap高,可以直接获取数组下标索引并访问 阅读全文
posted @ 2016-03-19 21:10 风一样的码农 阅读(9933) 评论(0) 推荐(2) 编辑
摘要: 以下内容基于jdk1.7.0_79源码; 什么是LinkedHashMap 继承自HashMap,一个有序的Map接口实现,这里的有序指的是元素可以按插入顺序或访问顺序排列; LinkedHashMap补充说明 与HashMap的异同:同样是基于散列表实现,区别是,LinkedHashMap内部多了 阅读全文
posted @ 2016-03-19 11:34 风一样的码农 阅读(7856) 评论(1) 推荐(4) 编辑
摘要: 前言 以下内容基于jdk1.7.0_79源码; 什么是HashMap 基于哈希表的一个Map接口实现,存储的对象是一个键值对对象(Entry<K,V>); HashMap补充说明 基于数组和链表实现,内部维护着一个数组table,该数组保存着每个链表的表头结点;查找时,先通过hash函数计算key的 阅读全文
posted @ 2016-03-16 00:07 风一样的码农 阅读(8338) 评论(14) 推荐(7) 编辑
摘要: 以下内容基于jdk1.7.0_79源码; 什么是集合迭代器快速失败行为 以ArrayList为例,在多线程并发情况下,如果有一个线程在修改ArrayList集合的结构(插入、移除...),而另一个线程正在用迭代器遍历读取集合中的元素,此时将抛出ConcurrentModificationExcept 阅读全文
posted @ 2016-03-13 07:06 风一样的码农 阅读(3765) 评论(0) 推荐(1) 编辑
摘要: 以下内容基于jdk1.7.0_79源码; 什么是LinkedList List接口的链表实现,并提供了一些队列,栈,双端队列操作的方法; LinkedList补充说明 与ArrayList对比,LinkedList插入和删除操作更加高效,随机访问速度慢; 可以作为栈、队列、双端队列数据结构使用; 非 阅读全文
posted @ 2016-03-12 20:41 风一样的码农 阅读(11215) 评论(1) 推荐(5) 编辑