什么时候这种情况会出现 本帖最后由 h47966392 于 2010-09-01 08:54:34 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单的看了一下,应该是逻辑有问题,应该不会走到那里。我们分析看:如果走到if(remaining > newCapacity )那么remaining 肯定会大于newCapacity 而newCapacity是通过capacity赋值得到的,然后通过Math.max( minCapacity , newCapacity ) ;所以newCapacity的值肯定是》=capacity值的。而前提的条件是:remaining <= capacity >>> 2那么肯定remaining 小于capacity 所以不会走的! 看了下是不会走到if ( remaining > newCapacity ) {}这个块里的。int minCapacity = Math.max( minimumCapacity , remaining << 1 ) ; // 这里 minCapacity >= 2 * remaining;newCapacity = Math.max( minCapacity , newCapacity ) ; // 这里 newCapacity >= 2 * remaining;// 所以不可能到这个if块里if ( remaining > newCapacity ) { //} 这是mina2的源码里面的 呵呵 我也看了半天实在想不出来怎么会进去那个if里面负数的情况应该不会出现 其实 newCapacity = Math.max( minCapacity , newCapacity ) ;这一段代码 是不是可以不用啊 他一定取的是newCapacity 的值 高手指导下 是不是可以不需要这段代码 看不懂。还得深入研究ja va api!学习中! 关于。。。的一道题 dwr怎么优化 这个东西加入菜单就运行有错了,奇怪 JPanel如何布局 Java&sql server&odbc,求大虾帮忙啊!!!! java读取文本文件中的第10个字节并放到变量C中 为什么一直报错说返回一个String 关于j2se1.4.0 讨论一下,程序员作培训班的讲师咋样?是不是浪费时间啊? 用java.awt.Graphics画线,能否设定线的宽幅? 添加打印机问题 求助
如果走到if(remaining > newCapacity )那么remaining 肯定会大于newCapacity
而newCapacity是通过capacity赋值得到的,然后通过
Math.max( minCapacity , newCapacity ) ;
所以newCapacity的值肯定是》=capacity值的。
而前提的条件是:remaining <= capacity >>> 2
那么肯定remaining 小于capacity
所以不会走的!
int minCapacity = Math.max( minimumCapacity , remaining << 1 ) ; // 这里 minCapacity >= 2 * remaining;newCapacity = Math.max( minCapacity , newCapacity ) ; // 这里 newCapacity >= 2 * remaining;// 所以不可能到这个if块里
if ( remaining > newCapacity ) {
//
}
其实 newCapacity = Math.max( minCapacity , newCapacity ) ;
这一段代码 是不是可以不用啊 他一定取的是newCapacity 的值
高手指导下 是不是可以不需要这段代码