java内存逃逸

2020-7-21 杨静

java内存逃逸','

1. 栈上分配\r\n

    一般而言,创建对象都是从堆中来分配的。栈上分配主要是指在Java程序的执行过程中,在方法体中声明的变量以及创建的对象,将直接从该线程所使用的栈中分配空间。在栈上来分配空间给新创建的对象

\r\n

2.  内存逃逸

\r\n

  \r\n 逃逸是指在某个方法之内创建的对象,除了在方法体之内被引用之外,还在方法体之外被其它变量引用到;

这样带来的后果是在该方法执行完毕之后,该方法中创建的对象将无法被GC回收,由于其被其它变量引用。

正常的方法调用中,方法体中创建的对象将在执行完毕之后,将回收其中创建的对象;故由于无法回收,即成为逃逸。

示例:

Object obj = null;\r\n \r\n public void alloc1() { \r\n obj = new Object(); \r\n } \r\n \r\n public Object alloc2() { \r\n Object objtest = new Object(); \r\n return objtest;\r\n } \r\n \r\n public void allocTest() { \r\n alloc2(); \r\n }

内存逃逸分析:

发表评论:

@2024 HowTD 浙ICP备18004985号-2

浙公网安备 33010202001281号