昆明java培训
达内昆明广州春城路

18487146383

热门课程

Java内存管理原理及内存区域

  • 时间:2016-08-15
  • 发布:昆明Java培训
  • 来源:达内新闻

Java内存管理原理及内存区域昆明达内java培训机构的老师讲了那么多章内容,这章终于结尾了,那么我们让昆明达内java培训机构的老师继续给我们讲Java内存管理原理及内存区域最后的两个方法。

方法区

方法区与 Java 堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

方法区在虚拟机启动的时候被创建,虽然方法区是堆的逻辑组成部分,但是简单的虚拟机实现可以选择在这个区域不实现垃圾回收。Java虚拟机规范也不限定实现方法区的内存位置和编译代码的管理策略。方法区的容量可以是固定大小的,也可以随着程序执行的需求动态扩展,并不在过多空间时自动收缩。方法区在实际内存空间 中可以是不连续的。

根据 Java 虚拟机规范的规定,当方法区无法满足内存分配需求时,将抛出 OutOfMemoryError 异常。

运行时常量池

运行时常量池是方法区的一部分,用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池中存放。一般来说,除了保存Class文件中描述的符号引用外,还会把翻译出来的直接引用也存储在运行时常量池中。

运行时常量池相对于 Class 文件常量池的另一个重要特征是具备动态性,Java 语言并不要求常量一定只有编译期才能产生,也就是并非预置入 Class 文件中常量池的内容才能进入方法区运行时常量池,运行期间也可能将新的常量放入池中,这种特性被开发人员利用的比较多的便是 String 类的 intern() 方法。

既然运行时常量池是方法区的一部分,自然受到方法区内存的限制,当常量池无法再申请到内存时会抛出 OutOfMemoryError 异常。

Java内存管理原理及内存区域的内容昆明达内java培训机构的老师讲到这里就结束啦,但是我们后期还有其他更多的知识点。同学们记得关注哟!

上一篇:Java两项内存管理的方法
下一篇:jsp传参servlet接收中文乱码问题

Java内存泄露

Java内存管理原理及内存区域

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货