-
-
2JDK 1.7 时候是使用分成16个Seagment段,每个Seagment里面存储着一个HashMap和一个锁,所以说1.7能支持最大的并发量也就是16个线程 JDK1.8采用的CAS + Synchronized,每次插入的时候判断是否是第一次插入,是就通过CAS插入,然后判断f.hash是否=-1,如果是的那么其他线程在扩容,当前线程也会参与扩容;删除方法用了synchronized修饰,保障并发下删除元素的安全
-
41.生成帮助文档。这是最常见的,也是 Java 最早提供的注解。常用的有 @see、@param 和 @return 等; 2.跟踪代码依赖性,实现替代配置文件功能。比较常见的是 Spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量; 3.在编译时进行格式检查。如把 @Override 注解放在方法前,如果这个方法并不是重写了父类方法,则编译时就能检查出。
-
61、万物皆对象 2、程序就是多个对象彼此调用方法的过程 3、从内存角度而言,每个对象都是由其它更基础的对象组成的 4、每一个对象都有类型,都可以进行实例化 5、同一类型的对象可以接收相同的消息 面向对象编程的最大挑战就是如何在问题空间的元素和解决方案空间的对象之间建立一对一的关联。
-
0(1) newCachedThreadPool 创建一个可缓存线程池 (2) newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数。 (3) newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。 (4) newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务。
-
1
-
0
-
5
-
100