该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-04
楼主,多写点类似的文章,好文.呵呵
|
|
返回顶楼 | |
发表时间:2011-01-14
如果能支持自己真的delete对象以及强制调用gc就好了。
|
|
返回顶楼 | |
发表时间:2011-01-25
最后修改:2011-01-25
/** * VM Args:-XX:PermSize=10M -XX:MaxPermSize=10M * @author zzm */ public class RuntimeConstantPoolOOM { public static void main(String[] args) { // 使用List保持着常量池引用,压制Full GC回收常量池行为 List<String> list = new ArrayList<String>(); // 10M的PermSize在integer范围内足够产生OOM了 int i = 0; while (true) { list.add(String.valueOf(i++).intern());//个人认为在此种特殊情况下,你只要创建了新的String对象常量池都会产生新的对象,是否调用intern方法是不会有影响的,因为intern方法会查找常量池中已经存在的字符串,如果有存在就直接返回,如果不存在才会进一步锁住常量池进行添加的行为 } } } |
|
返回顶楼 | |
发表时间:2011-03-04
学习了。写的很好。
|
|
返回顶楼 | |
发表时间:2011-04-14
首先,赞楼主功力深厚,最近看了一篇文章,上面提到了不同的观点,后来咨询了许多人,得到的答案也是不一致,心里一直在纠结着,希望得到楼主以及其他前辈的解答。
问题引出:类变量是在java虚拟机启动后就被初始化好了??? //注:个人最近在接触和学习java底层的一些知识,通过看了网上的许多文章,有了下面的一段想法,但无奈,网上文章议论不一,自己心里又不确定。所以请教楼主指出问题,我好接着努力。 类变量(静态变量),它是不和某个具体的对象绑定在一起的,是属于类的;当需要使用到该类时,就会被加载到内存中,静态变量就会被初始化。也就是说,一个应用程序执行了(底层实例化好了一个java虚拟机实例,支持着这个应用程序的执行),但是并不一定就初始化好了各个类的静态成员变量。//支持错误的观点。 |
|
返回顶楼 | |
发表时间:2011-06-08
赞一个,需要这样的讲jvm的文章。
|
|
返回顶楼 | |
发表时间:2011-08-01
这个书我也买了,非常不错
|
|
返回顶楼 | |
发表时间:2011-10-27
太强了,不服不行
|
|
返回顶楼 | |