摘要:
http://rdc.taobao.com/team/jm/archives/1706 阅读全文
摘要:
http://rdc.taobao.com/team/jm/archives/1719 阅读全文
摘要:
debug 到JDK的代码时,有时看不到一些调试信息,例如行号,局部变量的值等,为了排查问题,当然希望能知道这些调试信息了,故找了下带调试信息的jdk版本叫fastdebug。首先给出下载链接,这里只找到JDK6的,没有JDK7的http://download.java.net/jdk6/6u25/promoted/b03/index.htmlwindows 版本http://www.java.net/download/jdk6/6u25/promoted/b03/binaries/jdk-6u25-ea-bin-b03-windows-i586-debug-27_feb_2011.jarwi 阅读全文
摘要:
JAVA中String,StringBuffer,StringBuilder是有一些区别的;String主要应用在简单地保存一个字符串,逐步地遍历字符串,但其执行删除,修改,插入的操作时就有些麻烦;此时我们请出后两者,如StringBuffer,StringBuilder;说起后两者StringBuffer,StringBuilder主要在删除,修改,插入操作方面比String强,StringBuffer主要可以支持线程安全,可以同步,应用在多线程,游刃有余。而StringBuilder不支持线程安全,因而不可以同步,但它比StringBuffer速度快,它们刚好与String在性能上各有千. 阅读全文
摘要:
在jdk1.6中Oracle提供了一个新的可视化的。JVM监控工具JavaVisualVM。jvisualvm.exe在JDK的bin目录下。从界面上看还是比较简洁的,左边是树形结构,自动显示当前本机所运行的Java程序,还可以添加远程的Java VM,其中括号里面的PID指的是进程ID。OverView界面显示VM启动参数以及该VM对应的一些属性。Monitor界面则是监控Java堆大小,Permgen大小,Classes和线程数量。Profiler界面比较有趣,看样子似乎可以动态的对某个Java程序进行调优了。nohup java -Xms256M -Xmx512M -XX:MaxPerm 阅读全文
摘要:
很多人把Java的“效率低下”归咎于不能自由管理内存,但我们也知道将内存管理封装起来的好处,这里就不赘述。Java中的内存分配是随着new一个新的对象来实现的,这个很简单,而且也还是有一些可以“改进”内存回收的机制的,其中最显眼的就是这个System.gc()函数。乍一看这个函数似乎是可以进行垃圾回收的,可事实并不是那么简单。其实这个gc()函数的作用只是提醒虚拟机:程序员希望进行一次垃圾回收。但是它不能保证垃圾回收一定会进行,而且具体什么时候进行是取决于具体的虚拟机的,不同的虚拟机有不同的对策。那么下一个问题就是:gc()进行回收的准则是什么?也就是说什么样的对象可以被回收?简单来说就是:没 阅读全文
摘要:
Java.lang.ref 是 Java 类库中比较特殊的一个包,它提供了与 Java 垃圾回收器密切相关的引用类。这些引用类对象可以指向其它对象,但它们不同于一般的引用,因为它们的存在并不防碍 Java 垃圾回收器对它们所指向的对象进行回收。其好处就在于使者可以保持对使用对象的引用,同时 JVM 依然可以在内存不够用的时候对使用对象进行回收。因此这个包在用来实现与缓存相关的应用时特别有用。同时该包也提供了在对象的“可达”性发生改变时,进行提醒的机制。Java 中有 4 种类型的引用 : StrongReference、 SoftReference、 WeakReference 以及 Phan 阅读全文