摘要: [toc] SpringBean是Spring容器初始化、装配、管理的对象,Bean的定义以及之间的依赖通过配置元数据来表示。 Bean的作用域 Bean的默认作用域是单例的,即Spring容器中只会存在某个Bean的一个对象,通过多线程处理多个请求。如果想要Bean保持一些状态,单例可能就不是线程 阅读全文
posted @ 2019-02-16 10:14 darknessplus 阅读(221) 评论(0) 推荐(0) 编辑
摘要: # 阅读全文
posted @ 2019-02-12 19:58 darknessplus 阅读(79) 评论(0) 推荐(0) 编辑
摘要: [toc] 创建线程的方法 为什么要使用线程池 创建线程池的方法 Executors类提供了几个静态方法用于创建线程池 不建议使用Executors提供的几种线程池而要使用ThreadPoolExecutor的构造方法指定参数 防止OOM,Executors提供的几种线程池的等待队列没有设置大小限制 阅读全文
posted @ 2019-02-10 15:13 darknessplus 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 数据结构 jdk1.8:数组、链表/红黑树,同HashMap(jdk1.7 分段数组+链表) 线程安全的实现 jdk1.7,分段锁,每次只锁住一个分段,不同分段的数据可以并发修改,提高了并发访问率 jdk1.8,synchronized+CAS,对链表/红黑树的首节点加锁,只要hash不一样就不会冲 阅读全文
posted @ 2019-02-09 19:49 darknessplus 阅读(84) 评论(0) 推荐(0) 编辑
摘要: [toc] 线程的状态 新建(New)、可运行(Runnable)、阻塞(Blocking)、无限期等待(Waiting)、有限期等待(Timed Waiting)、死亡(Terminated) 使用线程 实现Callable接口 实现Runnable接口 继承Thread类 线程机制 用户线程与守 阅读全文
posted @ 2019-02-09 17:17 darknessplus 阅读(255) 评论(0) 推荐(0) 编辑
摘要: Java容器 Java容器分为Collection和Map,Collection保存单一对象而Map保存键值对。 List linkedList 中间插入、删除快,优化顺序访问,随机访问慢 arrayList 随机访问和顺序访问快,中间插入、删除慢 Stack Set hashSet TreeSet 阅读全文
posted @ 2019-02-08 20:57 darknessplus 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 数据结构 使用的是HashMap,value一律为Object 阅读全文
posted @ 2019-02-08 20:36 darknessplus 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 修改了key之后不能remove 问题的原因是对key进行了修改(因为key类重写了hashcode和equals方法,所以key对象的hash也会随之改变),由于对象在map中的位置是由修改前的key的hash计算而来的,而删除过程中的查找使用的是修改后的对象的hash,两次hash不一致,因此找 阅读全文
posted @ 2019-02-08 20:25 darknessplus 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 数据结构 双向链表 节点类型: 成员变量 重要方法 add(E e) 添加到链表尾,注意空链表 remove(Object o) o==null时要把Node.item==null都删除,删除Node要注意前后节点的链接,考虑前后节点在头尾 阅读全文
posted @ 2019-02-08 19:53 darknessplus 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 两个都可以用来判断两个对象是否相同一致。 hashCode相同的不一定是同一个对象;hashCode不同的一定不是相同对象 equals相同的一定是相同对象,是绝对可靠的 既然equals这么可靠,那为什么还要用hashCode进行比较呢? 由于equals方法对很多条件进行了比较,因此性能比has 阅读全文
posted @ 2019-02-08 16:30 darknessplus 阅读(172) 评论(0) 推荐(0) 编辑