Java HashMap死循环分析

一.引言

我们在平时的Java代码中经常会用到HashMap这个结构,JDK的官方文档上描述这个结构是非线程安全的,就是说在并发的情况下,HashMap的操作可能不是我们想要的。为了避免并发造成的影响,我们推荐在代码使用ConcurrentMap。一个经常被讨论的问题就是HashMap在高并发的情况下面,使用get方法就会出现死循环,导致应用的load彪高,此时重启应用,一切都会正常。记得在应用出现问题的时候保留现场,出现load彪高,一般需要把线程堆栈使用jstack保留下来,方便后续问题的排查。那么为什么在高并发的情况下,HashMap中会出现死循环呢?下面我们就慢慢分析一下。

2014.04.27 Qcon北京第三天总结

一.概述

2014Qcon北京第三天我主要关注了一个主题,尖端之上的Java,分享者主要讲了一些自己公司中如何使用Java开进行日常开发,这个主题也比较火。下午关于文化科研相关的演讲,我没怎么仔细听。

2014.04.25 Qcon北京第一天总结

一.概述

今天是2014北京Qcon第一天,也是自己第一次来北京,上午先去北京国际会议中心签到,领入场证和餐券,一进场就有人问我们要名片,感觉很多公司的人借此机会来挖其他公司里面的人。上午大家一起参加开场致词,接下来是三位国际友人的分享,上午的会议都是大家一起开的,下午我有选择性的听了四场会议,第一场是讲企业个人成长的,其余三场都是讲互联网架构的。

一个sql问题的排查

一.现象

线上一台任务机对一张mysql表进行全表扫描,当扫描过程中有一行记录读出来做数据转换,发现有很多行被多次读出来,并且多次尝试去做数据转换,同时数据转换也就失败了,因此也就打出了error级别的日志。

iframe在IE下面session失效了

一.问题

记得之前做一个项目的时候,把我们自己web系统的中的一个表单提交页面嵌入到其他产品线web系统的一个页面中,在IE浏览器下面出现表单提交失败的场景,查看日志是由于csrfToken失效导致。

谈谈自己对Spring IOC 和 AOP理解

一.谈谈自己对IOC的理解

Spring提供了一个容器,把我们业务代码中需要的一些bean都管理起来,这个Spring容器负责管理这些bean的生命周期,同时保证被依赖的bean能够正确找到自己所属的bean,能够根据代码中的依赖关系正确的实例化一个bean。要是没有Spring容器,我们就需要自己去创建bean,同时设置bean所依赖的bean,Spring容器把这些事情从业务代码中剥

实现页面区块随屏幕滚动的效果

一.需求描述

为了提升用户体验,我们经常需要在页面上显示一块内容,这块内容当屏幕向下滚动到一定位置后就展示出来,然后随着屏幕一起上下滚动,当屏幕向上滚动到一定程度,这块内容就消失,这样这块内容在就会有时候消失,有时候随着屏幕一起滚动。