在jvm中,有关内存可能会出现的两种错误内存溢出和内存泄漏,怎么理解这两种错误: 1、内存泄漏memory leak :是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。 2、内存溢出 out of memory :指程序申请内存时, ...
分类:
其他好文 时间:
2019-10-10 15:34:50
阅读次数:
87
本文的内存模型只写虚拟机内存模型,物理机的不予描述。 Java内存模型 在Java中,虚拟机将运行时区域分成6中,如下图: 由于类和方法的信息难以确定,不好设定大小,太大则影响年老代,太小容易内存溢出。 GC不好处理,回收效率低下,调优困难。 在上面的6种类型中,前三种是线程私有的,也就是说里面存放 ...
分类:
编程语言 时间:
2019-10-09 23:53:21
阅读次数:
80
1.1 Java虚拟机运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及各自的创建和销毁的时间,有的区域随着虚拟机的启动而创建,有些区域则依赖用户线程的启动和结束从而创建和销毁,Java虚拟机的内存包括以下几个运行时数据 ...
分类:
编程语言 时间:
2019-10-08 23:57:19
阅读次数:
171
①虚拟机日志参数 -XX:+PrintGC(在jdk9.jdk10中建议使用-Xlog:gc),使用这个参数启动java虚拟机,则在GC时就会打印相应日志 -XX:+PrintGCDetails, 该参数可以打印堆的详细信息,描述各个区间的使用情况(jdk9,jdk10中使用-Xlog:gc*) - ...
分类:
其他好文 时间:
2019-10-08 21:53:23
阅读次数:
99
异常/错误 java中处理异常的类:Throwable 错误(Error):一般是物理问题,jvm本身出现错误,无法处理。 内存溢出等 异常(Exception):指令产生的不符合规定的错误。 可以抛出异常或者通过程序指令进行处理 Exception的分类: 运行时异常:非检查异常(编译时不会报错) ...
分类:
编程语言 时间:
2019-10-08 09:44:44
阅读次数:
104
一、概念 1. 内存泄漏:对象使用完之后,没有按照预期被GC回收,一直留在内存中 2. 内存溢出:大量对象一直留在内存中,导致内存不够用(OOM),影响正常的程序运行 二、内存泄漏的场景 1. 内存中数据量太大,比如一次性从数据库中取出来太多数据 2. 静态集合类中对对象的引用,在使用完后未清空(只 ...
分类:
其他好文 时间:
2019-10-06 17:13:00
阅读次数:
86
前言 在JVM的管控下,Java程序员不再需要管理内存的分配与释放,这和在C和C++的世界是完全不一样的。所以,在JVM的帮助下,Java程序员很少会关注内存泄露和内存溢出的问题。但是,一旦JVM发生这些情况的时候,如果你不清楚JVM内存的内存管理机制是很难定位与解决问题的。 一、JVM 内存区域 ...
分类:
其他好文 时间:
2019-10-05 10:28:29
阅读次数:
99
一、设计堆内存溢出异常:OutOfMemoryError: JVM参数:-XX:+HeapOnOutOfMemoryError :到处内存溢出的堆信息(hprof文件) 执行后报错: 查看文件:文件保存在项目文件夹中,但是要查看其中内容,你需要借助Eclipse Memory Analyzer工具。 ...
分类:
其他好文 时间:
2019-10-04 23:15:20
阅读次数:
125
客户端常用的存储方式有三种:localstoragesessionstoragecookielocalStorage和sessionStoragelocalStoragelocalStorage 没有时间限制的数据存储,也就是说, localStorage是永远不会过期的,除非主动删除数据。 数据可... ...
分类:
其他好文 时间:
2019-10-02 23:17:05
阅读次数:
166
享元模式 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。 意图:运用共享技术有效地支持大量细粒度的对象。 主要解决:在有大量对象时,有可能会造成内存溢出,我们 ...
分类:
其他好文 时间:
2019-10-02 22:46:11
阅读次数:
108