当前位置: 首页 > news >正文

网站的域名和ip地址如何重新解析wordpress怎么安装到服务器

网站的域名和ip地址如何重新解析,wordpress怎么安装到服务器,做全房订制网站公司,个人网站免费做Java内存区域与内存溢出异常 运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存 实例堆溢出栈溢出 运行时数据区域 根据《Java虚拟机规范的规定》,Java虚拟机所管理的内存将会包含已下架几个运行时数据区域。 程序计数器 在Java虚…

Java内存区域与内存溢出异常

  • 运行时数据区域
    • 程序计数器
    • Java虚拟机栈
    • 本地方法栈
    • Java堆
    • 方法区
    • 运行时常量池
    • 直接内存
  • 实例
    • 堆溢出
    • 栈溢出

运行时数据区域

根据《Java虚拟机规范的规定》,Java虚拟机所管理的内存将会包含已下架几个运行时数据区域。
在这里插入图片描述

程序计数器

在Java虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。

此内存区域是唯一一个在《Java虚拟机规范》中没有规定任何OutOfMemoryError情况的区域。

Java虚拟机栈

Java虚拟机栈也是线程私有的,它的生命周期和线程相同。虚拟机描述的是Java方法执行的线程内存模型:每个方法被执行的时候,Java虚拟机都会同步一个栈帧用于存储局部变量表、操作书栈、动态连接、方法出口等信息。

在《Java虚拟机规范》中,对这个内存区域规定了两类异常情况:如果线程请求的栈深度大于虚拟机所运行的深度,将抛出StackOverflowError异常;如果Java虚拟机栈容量可以动态扩展,当栈扩展时无法申请到足够的内存会抛出OutOfMemoryError异常。

本地方法栈

本地方法栈与虚拟机栈所发挥的作用是非常相似的,其区别只是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用的本地(Native)方法服务。

与虚拟机栈一样,本地方法栈也会抛出StackOverflowError异常和OutOfMemoryError异常。

Java堆

对于Java应用程序来说,Java堆是虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动是创建。此内存区域的唯一目的就是存放对象实例。Java堆是垃圾收集器管理的内存区域,因此一些资料中它也被称作“GC堆”。

Java堆既可以被实现成固定大小的,也可以是可扩展的,不过当前主流的Java虚拟机都是按照可扩展来实现的(通过参数-Xmx和-Xms)设定。如果在Java堆中没有内存完成实例分配,并且堆也无法扩展时,Java虚拟机会抛出OutOfMemoryError异常。

方法区

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

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

运行时常量池

运行时常量池是方法区的一部分。Class文件除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池表,用于存放编译期生成的各种字面量与符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中。

常量池无法满足新的内存分配需求时,将抛出OutOfMemoryError异常。

直接内存

直接内存并不是数据区的一部分,但是这部分内存也被频繁使用,而且可能导致OOM异常。

在JDK1.4中新加入的NIO类,引入可基于通道与缓冲区的I/O方式,他可以使用Native函数库直接分配堆外内存。

实例

堆溢出

package jvm.dir01;import java.util.ArrayList;
import java.util.List;public class HeapOOM {static class OOMObject{}public static void main(String[] args) {List<OOMObject> list = new ArrayList<>();while (true) {list.add(new OOMObject());}}
}Exception in thread "main" java.lang.OutOfMemoryError: Java heap spaceat java.util.Arrays.copyOf(Arrays.java:3210)at java.util.Arrays.copyOf(Arrays.java:3181)at java.util.ArrayList.grow(ArrayList.java:267)at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:241)at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:233)at java.util.ArrayList.add(ArrayList.java:464)at jvm.dir01.HeapOOM.main(HeapOOM.java:14)

栈溢出

package jvm.dir01;public class JavaVMStackSOF {int count = 1;public void stackLeak() {count++;stackLeak();}public static void main(String[] args) {JavaVMStackSOF javaVMStackSOF = new JavaVMStackSOF();try {javaVMStackSOF.stackLeak();}catch (Exception e){System.out.println("length:" + javaVMStackSOF.count);throw e;}}
}Exception in thread "main" java.lang.StackOverflowErrorat jvm.dir01.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:9)at jvm.dir01.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:9)
http://www.15wanjia.com/news/163877.html

相关文章:

  • crm软件连云港新站优化
  • 网站转换率六枝做网站
  • 不用ftp做网站简单动画制作软件app
  • python网站开发视频教程云南南网站开发
  • 广州建网站的公司中小型企业网络拓扑图
  • 永久免费网站推荐wordpress 外链统计
  • 网站建设丶金手指下拉12上海百度嘉定公司网页设计
  • 长沙给中小企业做网站的公司wordpress move导入
  • 网站开发目录过多的缺点网站如何做外链2018
  • 怎么用cms做网站包装设计软件
  • 网站后台更新后主页没有变化中国芗城区城乡建设局网站
  • 做网站和做系统哪个难电子商务平台有哪些
  • 网站建设课程心得wordpress v3.3.1空间上传php
  • php网站模块软件公司
  • 58同城企业网站怎么做的男人和男人做爰漫画网站
  • 个人网站怎么制作教程重庆建设厂
  • 网站开发研究前景手机网站开发需求 百度云盘
  • 自己做网站卖什么好个人网站网站
  • 做网站几个步骤58同城机械加工订单
  • 岳阳网站开发商城梵克雅宝官网旗舰店
  • 网站建设需要知道什么网站注册域名查询
  • 免费摄影网站推荐西安网页设计培训排名
  • 如何建立免费的网站58招聘网最新招聘信息
  • 如何让百度收录自己的网站信息表情制作器
  • 网页设计作品长春seo外包
  • 建设网站预算手机上传视频网站开发
  • 怎样购买网站程序wordpress 编辑器推荐
  • wordpress的主题上传了没有显示河南seo关键词排名优化
  • 番禺区大石做网站宿迁房产网官网
  • 网站建设开发合同书wordpress在本地运行很慢