StackOverflowError 比较常见的问题,虚拟机栈中栈帧过多超出栈容量,常见发生在递归方法深度过深。 OutOfMemoryError java heap space java堆内存不足以放下新生成的对象实例,1.考虑是否程序中存在内存泄露导致大量不需要的实例仍然占用内存未被回收2.当前 ...
分类:
编程语言 时间:
2020-01-25 16:59:50
阅读次数:
75
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <title>javascript的数据类型</title> <met ...
分类:
编程语言 时间:
2020-01-23 09:14:17
阅读次数:
78
1 字符串的构造方法和直接创建 2 字符串的常量池 在堆内存中有这样一个空间,叫做字符串常量池,双引号直接写上的字符串(str1,str2)在常量池中,字符串常量池中的字符串对象保存的是byte字节数组的地址值。 ...
分类:
编程语言 时间:
2020-01-22 10:46:09
阅读次数:
75
以下文章来源于花椒技术 ,作者花椒服务端 前言 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 Java是由C++发展来的,抛弃了C++中一些繁琐容易出错的东西,程序员忘记或者错误的内存 ...
分类:
其他好文 时间:
2020-01-21 18:28:41
阅读次数:
103
堆结构分代图 堆结构分代的意义 Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。 堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中。给堆内存分 ...
分类:
其他好文 时间:
2020-01-20 14:48:57
阅读次数:
78
在了解这一块知识的时候,需要知道jdk1.8之前与jdk1.8及之其之后的区别 新生代: 刚创建的对象, 有可能经历过几次GC 老年代: 经历过多次GC之后,仍然存活的对象 永久代: 比如intern()方法入池的对象实际上就进入了永久代, 永久代不会被回收。因为其本身属于一个bug性的存在,所以在 ...
分类:
编程语言 时间:
2020-01-18 14:55:32
阅读次数:
103
新生代收集器: SerialParNewParallel Scavenge 老年代收集器: Serial OldCMSParallel Old 堆内存垃圾收集器: G1 参考链接:JVM常见的垃圾回收器 ...
分类:
其他好文 时间:
2020-01-18 10:26:28
阅读次数:
187
各司其职 最主要的区别就是栈内存用来存储局部变量和方法调用。 而堆内存用来存储Java中的对象。无论是成员变量,局部变量,还是类变量,它们指向的对象都存储在堆内存中。 独有还是共享 栈内存归属于单个线程,每个线程都会有一个栈内存,其存储的变量只能在其所属线程中可见,即栈内存可以理解成线程的私有内存。 ...
分类:
其他好文 时间:
2020-01-16 19:24:06
阅读次数:
90
最近看到浅拷贝与深拷贝的区别。联想到了对象的存储形式,即堆内存。 故如下主要针对java虚拟机中的堆内存与栈内存做下简单学习: 堆内存也叫运行时内存,是程序运行期间动态占用的一块内存,也是jvm中主要关注的一块内存。 引申:堆溢出与栈溢出的区别?代码分别测试下。 提示-->由于堆内存存储的是对象,所 ...
分类:
其他好文 时间:
2020-01-16 01:14:48
阅读次数:
82
测试栈空间的大小 https://blog.csdn.net/lyh__521/article/details/50115943 比如局部变量是保存在栈空间中的,今天突然在想栈的上限是多大呢,什么时候才会栈溢出? ulimit 命令linux下使用ulimit 命令可以查看系统的很多上限值。 uli ...
分类:
其他好文 时间:
2020-01-14 23:43:35
阅读次数:
113