J2EE
iteye_18979
这个作者很懒,什么都没留下…
展开
-
定制错误页面遇到的问题(403,404)
我在web.xml里面定义了错误页面,在Firefox显示正常,不知道为什么,跑到IE下面反而错了.我的错误页面是通过Spring Security提供的AOP实现的,开始以为是这个没有配置对.后来才知道,原来是IE对错误页面要求必须大于512.你可以通过下面的搜索链接,找到更详细的解释.http://www.baidu.com/s?tn=isanmao_pg&bs=IE+...2011-10-13 11:15:55 · 101 阅读 · 0 评论 -
【大数据笔记】Hadoop通过动态代理实现RPC
Hadoop所有的跨节点的通信都是通过RPC来通信的, RPC通信是需要创建Stub,一个好的RPC需要通过良好的设计确保了对上层调用的透明性. 我们下面就通过Hadoop里面最常用的心跳(JobTrack和TaskTracker)来研究一下Hadoop的RPC机制.心跳函数的调用在方法:TaskTracker.transmitHeartBeat();在此方法中会调用下面的代码段.这个方法...2014-09-12 20:09:49 · 174 阅读 · 0 评论 -
【大数据笔记】--续谈WordCount的Bug
在之前的Blog [http://flyfoxs.iteye.com/blog/2110463] 中讨论了, hadoop在文件切割时,可能会把一个行数据切割成无意义的2块. 如果不做特别处理,这会造成数据的失真及处理错误. 经人指点,发现这个BUG不存在. Hadoop在分割文件后,后期读取中会通过一些规则来保证不会出现把一行数据分割成2行. 下面对这个后期处理机制(LineRec...2014-09-09 22:55:32 · 133 阅读 · 0 评论 -
细说Tomcat如何打破双亲委派(有源码和图)
一句话概况: 不考虑缓存, 那么装载路径就是,先Classpath, 然后War包,当前工程, 最后才是Tomcat相关目录. 不考虑缓存,是因为缓存只是用来加快速度,对外不调用展现出的逻辑效果是可以忽略的. 下图是一个概况的流程图, 简介起见,绘图过程中移除了缓存功能. (个了感觉还是有些逻辑还是有些复杂的,图画出来了,自己看着都觉得还是不清楚,但是也没发现可以改进的地方) ...2014-09-08 22:43:46 · 4040 阅读 · 1 评论 -
如何在JAVA中创建一个不可变对象
1. 对象的状态在构造函数之后都不能被修改,任何修改应该通过创建一个新对象来实现.2. 所有的对象属性应该都设置为final3. 对象创建要正确,例如:对象的应用不能在构造函数中被泄露出去4. 对象要设置为final,确保不要继承的Class修改了immutability特性 上面这些规则不是100%的不能打破,比如String对象hash属性就不是一个final对象,但是...2014-08-29 23:45:53 · 579 阅读 · 0 评论 -
古怪的泛型
Java1.5引入的泛型是一个比较大的进步,让人用的也很爽.但是java的泛型是基于类型擦除,也就是只在编译期才有泛型的存在,在运行时根本没有泛型什么事. 这也造成了泛型不能支持下面这些情况,而这些是在C++里面是都得到了支持的. 不支持New操作 Java代码 class SomeContainer<E> { E creat...2014-08-20 15:56:45 · 135 阅读 · 0 评论 -
详解JAVA线程的中断
多线程之--2种办法让HashMap线程安全多线程之--synchronized 和reentrantlock的优缺点多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync)多线程之--详解JAVA线程的中断 中断线程,并不是直接的中断一个线程,需要依赖于当前线程的状态,有如下几点需要需要注意: 1) 除非当前线程中断自己(这个总是被...2014-08-08 14:11:54 · 119 阅读 · 0 评论 -
2种JAVA乐观锁的比较( NonfairSync VS. FairSync)
多线程之--2种办法让HashMap线程安全多线程之--synchronized 和reentrantlock的优缺点多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync) 本文从成员函数和锁的获取这2个角度, 比较这2种锁. 发现区别其实不大.只有在阻塞队列为0的时候才有些许区别. 如果分析的不对,请斧正. 稍...2014-08-07 11:13:10 · 429 阅读 · 0 评论 -
2种办法让HashMap线程安全
多线程之--2种办法让HashMap线程安全多线程之--synchronized 和reentrantlock的优缺点多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync) HashMap不是线程安全的,往往在写程序时需要通过一些方法来回避.其实JDK原生的提供了2种方法让HashMap支持线程安全. 方法一:通过Collect...2014-08-04 16:29:30 · 2208 阅读 · 0 评论 -
synchronized 和reentrantlock的优缺点
多线程之--2种办法让HashMap线程安全多线程之--synchronized 和reentrantlock的优缺点多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync) reentrantlock的优点可以添加多个检控条件, 如果使用synchronized,则只能使用一个. 使用 reentrant locks 可以有多个wait...2014-08-01 09:15:09 · 1445 阅读 · 0 评论 -
Log4j是如何取得行号的(有源码分析)
Log4J是如何打印出行号的呢,之前一直以为是通过JAVA的反射.今天特意去查了一下,JAVA的方式好像没有提供这样的接口.于是研究了一下Log4J的代码,现在分享出来. 开门见山:直接开门见山的讲重点, 其实要获得JAVA的行号,Log4j就是先抛出异常,然后在异常堆栈中找到调用函数所在位置. 下面根据下面的一个异常堆栈,来分析如何通过2歩找到找位置的办法.1)找到org...2014-07-09 15:44:09 · 1240 阅读 · 0 评论 -
通过代码证明HashMap是线程不安全的(只用了一个Java文件)
下面是代码,各位看官可以直接看代码,还是比较简单的. 附件里面我也附了代码,可以下载去运行测试一下.我给同事看了一个这个例子,有同事问为什么往HaspMap里面放值每个值得Key都不一样,为什么会有冲突呢?其实这个就是Hash的原理了,并不是每一个key都预先分配好位置了.一个好的Hash算法,是尽量的保证算法的均衡.而不是避免冲突,当样本比较多时冲突是无法避免的....2011-10-16 23:35:21 · 267 阅读 · 0 评论 -
细说Tomcat如何打破双亲委派(续1)
在上一篇文章里面分析WebappClassLoader.loadClass,了解了Tomcat是如何打破双亲委派的. 有兴趣的可以参考. 细说Tomcat如何打破双亲委派(有源码和图) 但是上面的分析偏重于流程,没有分析ClassLoader是如何加按照顺序寻址,然后加载对应的Class到二进制流中. WebappClassLoader.loadClass在违背双亲委派规则,自...2014-09-24 09:13:46 · 1150 阅读 · 0 评论