【第22期】观点:IT 行业加班,到底有没有价值?

java的内存分配机制

原创 2015年07月10日 20:22:08

堆(heap)向下分配
栈(stack)向上分配

调用函数后 就要创建所有局部变量和参数 (在栈中分配空间)
函数会有额外开销(一开始就分配)

Point p1=new Point(x1,x2)
使用new创建 动态变量 在堆中分配内存
为所有属性分配内存空间
还包括一些额外开销 记录一些额外数据(一开始就有)
一旦用new创建了新对象Point(x1,x2)
那么栈中对应p1点值就为堆中刚创建对象的 储存地址/起始地址

写函数体时 未与特定对象建立联系
那么在之后 对某个对象调用函数时
会自动在栈中 创建pointer(指位器)——this
来确保之后是对 指定对象的一系列操作
this的值为 调用函数的对象的 地址值
那么 对象调用函数 内存先分配 额外开销 而后是this 再后是局部变量和参数

一旦结束对函数的访问
栈中相应内存空间 通过 自动垃圾回收机制 被清理
这一过程被称为 pop off stack 出栈

Line ln1=new Line(p1,p2)
执行这行代码时 先为这个函数的 局部变量/参数分配内存空间
于是 在栈中 p1 p2开辟了两块内存空间 其值分别为Point p1和Point p2的储存地址
在执行完构造函数之后 栈中这两块因调用函数占用的内存空间 被释放

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Java内存分配机制详解

文章转载自:http://www.cnblogs.com/zhguang/p/3257367.html 本文仅载抄了部分内容,若想知道JVM内存全量信息,请查看原文 Java内存分配机制 ...

java的内存分配机制

按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的.  <span style="font-family: 'Times New Roman'; font-size: 10.5p

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

以NIO通信例子结合Jconsole解释JVM内存分配机制

JAVA的内存分配机制,在很多地方都已经解析很多次了,个人如何方便的来直观的了解,还有很多人不是很清楚,或者没有这样的机会,在这里我结合一个小例子,采用JDK自带的JConsole来说一下JVM的内存...

android的内存分配机制

ashmem是android的内存分配/共享机制,在dev目录下对应的设备是/dev/ashmem,相比于传统的内存分配机制,如malloc、 anonymous/named mmap,其好处是提供了辅助内核内存回收算法的pin/unpin机制。 ashmme的典型用法是先打开设备文件,然后做mm...

java中的内存分配机制

问题的引入:问题一:String str1 = "abc";String str2 = "abc";System.out.println(str1==str2); //true问题二:String s...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)