chJava语言基础.pptVIP

  • 5
  • 0
  • 约4.06万字
  • 约 136页
  • 2017-06-22 发布于四川
  • 举报
数据类型 内存管理原理 程序运行前:Java程序不负责创建内存空间,是由JVM完成。当程序准备执行时,由JVM向操作系统请求一定的内存空间,称为初始内存空间。程序执行过程中所需的内存都由Java虚拟机从这片内存空间中划分。 程序运行中 Java程序一直向Java虚拟机申请内存,当程序所需内存空间超出初始内存空间时,Java虚拟机会再次向操作系统申请更多的内存供程序使用。 内存溢出 程序接着运行,当Java虚拟机已申请的内存达到了规定的最大内存空间,但程序还需要更多的内存,这时会出现内存溢出的错误。 内存空间逻辑划分 JVM会把申请的内存从逻辑上划分为三个区域 方法区 堆 栈 Java虚拟机对内存空间的管理 Java程序中的哪些内容会占用内存空间呢? 类的结构、 对象中的数据 变量(包括基本类型和引用类型)等都会占用内存空间 Java虚拟机对内存空间的管理(续) Java虚拟机的三个区域“方法区”、“堆区”和“栈区”都有大小限制,任何一个区域内存溢出都会导致程序出现错误,栈内存溢出会发生StackOverflowException错误,堆内存溢出会发生OutOfMemoryError错误。 方法区中的内存分配:方法区默认最大容量为64M,Java虚拟机会将加载的java类存入方法区,保存类的结构(属性与方法),类静态成员等内容。编写中小型程序时,一般不会造成方法区的内存溢

文档评论(0)

1亿VIP精品文档

相关文档