![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
杂项-各种原理
文章平均质量分 89
liyidaozhang
这个作者很懒,什么都没留下…
展开
-
java应用基础
2 java应用基础位运算>>表示右移,如果该数为正,则高位补0,若为负数,则高位补1;>>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。一个数字位运算,每左移n为等于这个数乘以2的n次方,每右移n为就等于这个数除以2的n次方,而这个算法非常快。使用BigDecimal构造更精确的浮点数BigDecimal money1 = new BigDecim原创 2017-06-04 19:44:57 · 271 阅读 · 0 评论 -
原子变量和原子操作
原子变量和原子操作通常情况下,在Java里面,++i或者–i不是线程安全的,这里面有三个独立的操作:获得变量当前值,为该值+1/-1,然后写回新的值。在没有额外资源可以利用的情况下,只能使用加锁才能保证读-改-写这三个操作是“原子性”的。Java 5新增了AtomicInteger类,该类包含方法getAndIncrement()以及getAndDecrement(),这两个方法实现了原子加以及原子原创 2017-06-04 19:47:31 · 1733 阅读 · 0 评论 -
从HashMap到ConcurrentHashMap
从HashMap到ConcurrentHashMapjdk1.8的HashMapJava为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示: HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但原创 2017-06-04 19:46:21 · 630 阅读 · 0 评论 -
java线程池常见问题
java线程池常见问题常见的四种java线程池Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线原创 2017-06-04 19:46:59 · 1003 阅读 · 0 评论 -
IOC的两种实现方式
IOC的两种实现方式构造方法注入setter注入Ioc需要实现两个技术: - 对象的构建 - 对象的绑定spring提供了两种类型的容器,一个是BeanFactory,一个是ApplicationContext(可以认为是BeanFactory的扩展),下面我们将介绍这两种容器如何实现对对象的管理。BeanFactory如果没有特殊指定,默认采用延迟初始化策略(lazy-load)。只有当原创 2017-06-06 15:01:47 · 7513 阅读 · 1 评论