jvm 内存溢出 - 方法区及运行时常量池溢出

0

Java 永久代是非堆内存的组成部分,用来存放类名、访问修饰符、常量池、字段描述、方法描述等,因运行时常量池是方法区的一部分,所以这里也包含运行时常量池。我们可以通过 jvm 参数 -XX:PermSize=10M -XX:MaxPermSize=10M 来指定该区域的内存大小,-XX:PermSize 默认为物理内存的 1/64 ,-XX:MaxPermSize 默认为物理内存的 1/4 。String.intern() 方法是一个 Native 方法,它的作用是:如果字符串常量池中已经包含一个等于此 String 对象的字符串,则返回代表池中这个字符串的 String 对象;否则,将此 String 对象包含的字符串添加到常量池中,并且返回此 String 对象的引用。在 JDK 1.6 及之前的版本中,由于常量池分配在永久代内,我们可以通过 -XX:PermSize-XX:MaxPermSize 限制方法区大小,从而间接限制其中常量池的容

Java 垃圾回收 - 对象引用

0

在 JDK 1.2 之前,Java 对象的引用很传统:如果 reference 类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。这种定义很纯粹,但是太过狭隘,一个对象在这种状态下只有被引用或不被引用两种状态,有时候我们希望描述这样一类对象:当内存空间还足够时,则能保留在内存之中;如果内存空间在进行垃圾收集后还是非常紧张,则可以抛弃这些对象。

Centos 下调整 java 时区

0
文章没有摘要信息,添加摘要需要在文章中加入<!-- more -->标记,标记之前内容为摘要

VisualVM - Java 应用运行监视与故障处理程序

0

VisualVM(All-in-One Java Troubleshooting Tool) 是随 JDK 发布的一款功能强大的运行监视和故障处理程序。除了运行监视、故障处理之外,它还提供了性能分析等其他功能。与其他功能相比,VisualVM 不需要被监视程序基于特殊的 Agent 运行,因此他对应用程序的实际性能影响很小,使得它可以直接应用在生产环境中。

Java 类、变量加载顺序

0
文章没有摘要信息,添加摘要需要在文章中加入<!-- more -->标记,标记之前内容为摘要

Java 访问修饰符总结

0
文章没有摘要信息,添加摘要需要在文章中加入<!-- more -->标记,标记之前内容为摘要

jvm 内存溢出-堆溢出

0

Java 堆用于存储对象实例,只要不断地创建对象,并且保证 GC Roots 到对象之间有可达路径来避免垃圾回收机制清除这些对象,则在对象数量到达最大堆的容量限制后就会产生内存溢出异常。因此我们用编写如下代码来模拟内存溢出

jconsole - Java 监视与管理控制台

0

JConsole(Java Monitoring and Management Console)是一种基于JMX的可视化监视、管理工具。它管理部分的功能是针对 JMX MBean 进行管理,由于 MBean 可以使用代码、中间件服务器的管理控制台或者所有符合 JMX 规范的软件进行访问。

jhat - 虚拟机堆转储快照分析工具

0

jhat(JVM Heap Analysis Tool) 主要是为了和 jmap 搭配使用,来分析 jmap 生成的转储快照。jhat 内置了一个微型的 HTTP/HTML 服务器,生成 dump 文件的分析结果后,可以在浏览器中查看。不过在实际工作中,一般都不会去直接使用 jhat 命令来分析 dump 文件。

jinfo - Java 配置信息工具

0

jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机各项参数。使用 jps -v 命令参数可以查看虚拟机启动时显式指定的参数列表,如果想知道未被显式指定的参数的系统默认值,除了去找资料外,还可以使用 jinfo -flag 命令进行查询。