2013年1月19日
摘要: 声明:本文转载自http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/版权和最终解释权给原作者所有,谢谢。问题的提出:Java的一个重要优点就是通过垃圾回收器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄露问题,或者认为即使存在内存泄露也不是程序的责任,而是GC或JVM的问题。其实这种想法是不正确的,因为Java也存在内存泄露,但是它的表现与C++不同。随着越来越多的服务器程序采用Java语言,例如JSP,Servlet,EJB等,服务 阅读全文
posted @ 2013-01-19 22:43 大大森林 阅读(153) 评论(0) 推荐(0)
摘要: 程序员都了解初始化的重要性,但常常会忘记同样也重要的清理工作。在java中有垃圾回收器负责回收无用对象占据的内存资源,但是也有特殊的情况:假定你的对象(并非使用new)获得了一个“特殊”的内存区域,由于垃圾回收器只知道释放那些经由new分配的内存,所以它不知道该什么释放该对象的这块“特殊”内存。为了应对这种情况,java允许在类中定义一个名为finallize()的方法。它的工作原理“假定”是这样的:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finallize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。这里有一个潜在的编程陷阱,因为有些程序员(特别是C+ 阅读全文
posted @ 2013-01-19 21:12 大大森林 阅读(181) 评论(0) 推荐(0)
  2013年1月14日
摘要: 声明:本文转载自http://www.cnblogs.com/fbsk/archive/2011/10/17/2215539.html版权和最终解释权归原作者所有,谢谢。dip: device independent pixels(设备独立像素),不同设备有不同的显示效果,这个和设备硬件有关,一般为了支持WCGA、HVGA和QVGA推荐使用这个,不依赖像素;这里特别注意dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常显示。在屏幕密度为160的显示屏上,1dip=1px,有时候你的屏幕分辨率很大,如480*800,但是屏幕密度没有正确设置,比如说还是1 阅读全文
posted @ 2013-01-14 23:10 大大森林 阅读(134) 评论(0) 推荐(0)
  2013年1月13日
摘要: 声明:本文转载自http://www.infoq.com/cn/articles/java-se-16-synchronized版权和最终解释权归InfoQ和原作者所有,谢谢。术语定义术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。线程不安全的HashMap因为多线程环境下,使用HashMap进行put操 阅读全文
posted @ 2013-01-13 13:22 大大森林 阅读(151) 评论(0) 推荐(0)
摘要: 声明:本文转载自http://www.infoq.com/cn/articles/java-se-16-synchronized版权和最终解释权归InfoQ和原作者所有,谢谢。1. 引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。2. 线程池的使用线程池的创建我们可以通 阅读全文
posted @ 2013-01-13 13:21 大大森林 阅读(149) 评论(0) 推荐(0)
摘要: 声明:本文转载自http://www.infoq.com/cn/articles/java-se-16-synchronized版权和最终解释权归InfoQ和原作者所有,谢谢。1 引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。2 术语定义术语英文说明CASCompare and Swap比较并设置。用于在硬件层面上提供原子性操 阅读全文
posted @ 2013-01-13 13:20 大大森林 阅读(144) 评论(0) 推荐(0)
摘要: 声明:本文转载自http://www.infoq.com/cn/articles/ftf-java-volatile版权和最终解释权归InfoQ和原作者所有,谢谢。引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的,通过深入分析能帮助我们正确的使用Volatile变量。 阅读全文
posted @ 2013-01-13 13:19 大大森林 阅读(173) 评论(0) 推荐(0)