![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
堆栈方法区
万花丨凋
一天分享自己研究的一部分代码
展开
-
java中是否会存在内存泄漏,如果存在,内存泄漏产生的原因有哪些
会存在,程序分配的堆内未释放或无法释放的现象原因:长生命周期持有短生命周期对象的引用java中内存泄漏发生的场景:全局的集合变量,不正确的单例模式的使用产生内存泄漏的原因可以看下面的图:从里面可以看到引起内存泄漏共有6种因素:1.静态集合类引起的内存泄漏2.当集合里面男的对象属性被修改后,再调用remove方法时不起作用3.监听器4.各种连接5.内部类和外木模块的引用6.单例模式内存泄漏也跟堆栈方法区中的堆有关,如果不懂的可以点击此连接:https://blog.csdn.net/原创 2020-08-14 14:43:06 · 221 阅读 · 0 评论 -
堆(heap)、栈(stack)和方法区(method)图示
如下图所示:如上图所示,堆中的数据都有内存地址值,数据也都有默认初始化值,但是当对象不再被指向时,JVM就会启动垃圾回收垃圾回收机制,同时堆和方法区都是各个线程的共享区域,栈中的数据正好和堆中数据的规则相反堆栈方法区的存储类型也是不一样的:堆:new创建的对象或数组栈:基本类型值、引用数据类型方法区:类信息、常量。静态变量、编译器编译后的代码等(前提是:都是被虚拟机已经加载过的)...原创 2020-08-14 11:49:30 · 616 阅读 · 0 评论