摘要: 简单来说,对象内存分配主要是在堆中分配。但是分配的规则并不是固定的,取决于使用的收集器组合以及JVM内存相关参数的设定以下介绍几条基本规则(使用的ParNew+Serial Old收集器组合):一,对象优先在新生代Eden区分配[java]view plaincopy//-XX:+UseParNewGC-Xms20m-Xmx20m-Xmn10m-XX:+PrintHeapAtGC-XX:+PrintGCDetailspublicclasstest{staticintmb=1024*1024;publicstaticvoidmain(String[]args){byte[]b1=newbyte[ 阅读全文
posted @ 2014-02-24 21:09 E_star 阅读(2022) 评论(0) 推荐(0)
摘要: 基本上 jvm内存回收有三种 基本算法标记-清除标记清除的算法最简单,主要是标记出来需要回收的对象,然后然后把这些对象在内存的信息清除。如何标记需要回收的对象,在上一篇文章里面已经有说明。标记-清除-压缩这个算法是在标记-清除的算法之上进行一下压缩空间,重新移动对象的过程。因为标记清除算法会导致很多的留下来的内存空间碎片,随着碎片的增多,严重影响内存读写的性能,所以在标记-清除之后,会对内存的碎片进行整理。最简单的整理就是把对象压缩到一边,留出另一边的空间。由于压缩空间需要一定的时间,会影响垃圾收集的时间。标记-清除-复制这个算法是吧内存分配为两个空间,一个空间(A)用来负责装载正常的对象信息 阅读全文
posted @ 2014-02-24 19:53 E_star 阅读(1053) 评论(1) 推荐(0)
摘要: 转载自:http://www.cnblogs.com/aigongsi/archive/2012/04/06/2434771.htmljava与C,c++有很大的不同就是java语言开发者不需要关注内存信息,不会显式的直接操作内存,而是通过jvm虚拟机来实现。java虚拟机运行的时候内存分配图如下图:jvm虚拟机栈:一个是线程独有的,每次启动一个线程,就创建一个jvm虚拟机栈,线程退出的时候就销毁。这里面主要保存线程本地变量名和局部变量值。本地方法栈: 调用本地jni方法的时候而创建的。这里分配的jvm之外的内存空间。方法调用结束之后销毁。pc寄存器 : 这个保存线程当前执行的字节码指令堆:主 阅读全文
posted @ 2014-02-24 19:34 E_star 阅读(725) 评论(0) 推荐(0)
摘要: 互联网大势1、《浪潮之巅》:吴军,电子工业出版社,2011年讲述历史,揭示规律:从科技工业一百多年的发展,揭示那些站在技术革命的浪尖之上的公司成功的本质原因。2、《沸腾十五年:中国互联网1995-2009》:林军,中信出版社,2009年覆雨翻云的中国网事;荡气回肠的产业传奇;虚拟世界的真实讲述;万象网络的还原走笔。这本关于中国互联网产业历史的书,脉络清晰、生动鲜明地把这样一大批创业者的形象和他们的动人故事呈现在读者眼前,值得一读。3、《互联网进化论》:刘锋,清华大学出版社,2012年用全面、联系的观点看云计算,物联网、移动互联网与传统互联网:一本全方位地介绍互联网的技术要点和商业模式,深入探讨 阅读全文
posted @ 2014-02-24 15:31 E_star 阅读(915) 评论(0) 推荐(1)