摘要: eg:System.out.println(10.00 - 9.93)我们很期望它的结果是:0.07 但是它的值却是:0.07000000000000028 这是为什么呢?浮点间的运算有可能是不正确的。这是有计算机的存储规则所决定的。这种情况可以有两种解决方案: 使用BigDecimal .本身提供了常用的加减乘除的运算。专门为弥补计算浮点的。 使用整形。先将参与运算的值扩... 阅读全文
posted @ 2014-04-06 21:07 饮露秋林 阅读(119) 评论(0) 推荐(0) 编辑
摘要: package com.hqb360.uic.biz.point.impl;import com.hqb360.common.lang.DateUtil;import java.util.Date;/** 生成随机时间* Created with IntelliJ IDEA.* User:* Date: 14-3-25* Time: 上午10:59*/public clas... 阅读全文
posted @ 2014-03-25 23:22 饮露秋林 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 在做包剪锤游戏时,下注的时候提交一个json 请求。不断的刷新后,点击下注,提示页面过期。 经分析研究有如下疑问: 1.页面已经产生了新的token, 点击下注按钮 ,匹配session中的token,发现找不到了token的值,提示页面已经过期,请刷新。 2.右键刷新之后,为何也没有产生新的token 值。 3.测试发现在地址栏直接回车或者CRAT + F5 强制刷新,可以产生新的t... 阅读全文
posted @ 2014-03-24 22:37 饮露秋林 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 以tomcat所用8080端口举例说明: 第一步,命令提示符号,执行命令:netstat –ano Active Connections Proto Local Address Foreign Address State PID TCP 0.0.0.0:8080 0.0.0.0:0... 阅读全文
posted @ 2014-03-08 16:23 饮露秋林 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 第一种:Serial 收集器 单线程收集器,收集的时候会暂停所有工作线程。 第二种:ParNew 收集器 ParNew 收集器是Serial多线程版本。 第三种:Serial Old 收集器 老年代的Serial版本 第四种:CMS收集器 CMS(concurrent Mark Sweep) 收集器是以获得最短响应时间为目标的收集器。 其过程: ... 阅读全文
posted @ 2014-03-06 00:01 饮露秋林 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 第一种:标记清除算法 就是标记需要回收的对象,然后再统一回收被标记的对象。 缺点: 效率问题,标记和清除都费时。 空间问题,清除之后会产生碎片。假设再需要大的内存时,将无法分配足够大的空间。 第二种:复制算法 将内存分为两块,每次只使用其中的一块。一块内存用完了就将存活的对象复制到另一块去。然后... 阅读全文
posted @ 2014-03-04 00:19 饮露秋林 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 来源:出现在JDK 1.2 ,为了更好的控制对象的生命周期。 所以把对象的引用分为四种:强引用、软引用、弱引用、虚引用,这四种类型引用强度依次减弱。 强引用: 很平常的一种引用,垃圾回收器不会回收它,当没有内存使用时,它宁愿抛出OutOfMemoryError 异常。 Object object = new Object(); 软引用: 当内存不足的时候,就会回... 阅读全文
posted @ 2014-03-03 23:58 饮露秋林 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 垃圾回收(GC) 需要做三件事情: 哪些内存可以回收? 什么时候可以回收? 如何回收? Java 是通过根搜索法判定对象是否存活的。 基本思路:以“GC roots”的对象为起点。从这些节点开始向下搜索,搜索路过的路径成为“引用链” 当GC roots 没有任何引用链相连时,便可回收此对象。 可以作为GC roots 的对... 阅读全文
posted @ 2014-03-02 21:37 饮露秋林 阅读(167) 评论(0) 推荐(0) 编辑
摘要: JAVA 堆溢出 例子: VM options 设置为:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError package com.panpan.web.controller;import java.util.ArrayList;import java.util.List;/** * 内存溢出 * Created with Intel... 阅读全文
posted @ 2014-03-02 21:09 饮露秋林 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 如下一句代码:Object obj = new Object();可以用一图表明:对象的引用放到了栈 里,对象的实例存储在堆里。引用类型只规定了一个指向对象的引用。那它是如何通过这个引用找到在java堆中对象的实例呢?不同的虚拟机有不同的方式。主流的有两种:使用句柄在java堆中开辟了一块内存作为句柄池。reference 类型存储的是对象的句柄地址,句柄中包含了对象实例的指针。直接使用指针可以看到的是reference 中直接就存储了对象的地址。各自的优势比较: 一、句柄方式最大的好处就是在对象改变位置的时候(这种情况在垃圾回收时是常有的),reference的句柄地址不需要改变。只会更改句 阅读全文
posted @ 2014-03-02 18:47 饮露秋林 阅读(247) 评论(0) 推荐(0) 编辑