通过代码实例跟我学java语言程序设计及应用技术——util程序包中典型类的应用实例内容摘要:
d_mode).toString()。 } } ( 2)控制四舍五入 1) ROUND_HALF_UP:遇到 .5 的情况时往上近似,例:。 2 2) ROUND_HALF_DOWN:遇到 .5 的情况时往下近似,例 :。 1 3) ROUND_CEILING:如果 BigDecimal 是正的,则做 ROUND_UP 操作;而如果为负,则做 ROUND_DOWN 操作。 4) ROUND_DOWN:从不在舍弃(即截断)的小数之前增加数字。 5) ROUND_FLOOR:如果 BigDecimal 为正,则作 ROUND_UP;如果为负,则作ROUND_DOWN。 6) ROUND_HALF_DOWN :若舍弃部分 .5 ,则作 ROUND_UP ;否则将作ROUND_DOWN。 7) ROUND_HALF_EVEN:如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP;如果它为偶数,则作为 ROUND_HALF_DOWN 8) ROUND_HALF_UP:若舍弃部分 =.5,则作 ROUND_UP;否则将作 ROUND_DOWN 9) ROUND_UNNECESSARY:该“伪舍入模式”实际是指明所要求的操作必须是精确的,因此不需要舍入操作。 10) ROUND_UP:总是在非 0 舍弃小数(即截断)之前增加数 字。 JDK 5 中的 锁 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 5/10 页 ( 1) synchronized 是独占锁 尽管 synchronized 在语法上已经足够简单了,在 JDK 5 之前只能借助此实现,但是由于是独占锁,性能却不高,因此 JDK 5 以后就开始借助于 JNI 来完成更高级的锁实现。 独占锁是一种悲观锁, synchronized 就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。 而另一个更加有效的锁就是乐观锁。 所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操 作,如果因为冲突失败就重试,直到成功为止。 ( 2) JDK 5 中的锁是接口 另外 提供了一对可供读写并发的锁。 ( 3) synchronized 和 的异同 1) 主要相同点: Lock 能完成 synchronized 所实现的所有功能 2) 主要不同点: Lock 有比 synchronized 更精确的线程语义和更好的性能。 synchronized会自动释放锁,而 Lock 一定要求程序员手工释放,并且必须在 finally 从句中释放。 尽管 synchronized 实现 Lock 的相同语义,并且在语法上比 Lock 要简单多,但是前者却比后者的开销要大得多。 ( 4) lock()和 unlock()方法 1) void lock()。 获取锁,如果锁不可用,出于线程调度目的,将禁用当前线程,并且在获得锁之前,该线程将一直处于休眠状态。 2) void unlock()。 释放锁,对应于 lock()、 tryLock()、 tryLock(xx)、 lockInterruptibly()等操作,如果成功的话应该对应着一个 unlock(),这样可以避免死锁或者资源浪费。 Lock 之所以能够保证线程安全,是因为 Lock 对象的 lock()方法保证了只有一个线程能够只有此锁。 但 需要说明的是对于任何一个 lock()方法,都需要一个 unlock()方法与之对于,通常情况下为了保证 unlock 方法总是能够得到执行, unlock 方法被置于 finally 块中。 ( 5) lock()和 unlock()方法的应用示例 package。 import。 import。 public class AtomicIntegerWithLo。通过代码实例跟我学java语言程序设计及应用技术——util程序包中典型类的应用实例
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。