JVM知识

java字符串在内存中:
存放于堆中或者字符串常量区

堆内存

堆内存分为Permanent Space(持久代) 和Heap Space 。
Heap Space

年轻代:所有新生成的对象都放在年轻代。年轻代的作用就是快速收集掉生命周期短的对象。针对年轻代的垃圾回收就是young gc 。

老年代:在年轻代中经历了多次gc垃圾回收后任然存在的对象,就会复制到老年代中。老年代存放一些生命周期较长的对象。针对老年代的垃圾回收就是old gc。溢出原因:创建千万量的对象,以及千万量的字符串处理。

持久代:存放java类定义信息,静态数据。跟垃圾回收没有关系。溢出原因:动态加载了大量的java类。

方法区

方法区和堆一样,是被线程共享的区域,在方法区中, 存储了每个类的信息(包括类的名称,方法信息,字段信息),静态变量,常量,以及编译后的代码。

垃圾收集

使用垃圾收集的程序不需要明确释放对象,现代垃圾收集能够处理循环引用的问题,能提高程序的效率,可能会有泄露的问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容