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虚拟机内存分配机制

  • 2013年03月07日 13:34
  • 33KB
  • 下载

c++内存分配机制

  • 2013年11月27日 23:07
  • 38KB
  • 下载

java的内存分配机制

Java的内存分为两种:一种是栈内存,一种是堆内存。    在函数中定义的一些基本类型变量和对象的引用都在函数的栈内存中分配。当在一个代码块中定义一个变量的时候,java就在栈中为其分配内存,当超过...

java基础:内存分配机制

在任何编程语言中,无论是基本类型还是引用类型,不论其作用域如何,都必须为其分配一定的内存空间,Java 语言也不例外            Java 的数据类型可以分为两种:基本类型(变量持有数...

JVM深入浅出(四) -- Java内存分配机制

Java存放对象、变量等信息需要分配内存进行保存,分配及储存区原理如下: 1.寄存器 它是唯一位域处理器内部的存储区。所以它是最快的,数量也是极其有限的,并且和 C,C++不一样的是,Java寄存...
  • JacXuan
  • JacXuan
  • 2017年05月04日 23:25
  • 6315

java类的内存分配机制

要是改变初始化与域的位置,输出结果也会有相应改变,同样静态(或非静态)的初始化和域,基本按照先后顺序执行。 结论是: 1)静态元素(变量、方法、域、内部类)不能直接调用非静态元素 ,需...

Java虚拟机内存分配机制与启动参数说明

Java虚拟机内存分配机制与启动参数说明,配置堆区:-Xms 、-Xmx、-XX:newSize、-XX:MaxnewSize、-Xmn; 配置非堆区:-XX:PermSize、-XX:MaxPer...

Java虚拟机-垃圾收集器和内存分配机制

在了解垃圾收集器之前,我们需要知道什么样的对象才会被GC收集 1.判断对象已死 堆内存中存放着Java世界中几乎所有的对象实例,垃圾收集器对堆内存回收时,第一件事就是要确定那些对象还存活/死去。 判断...
  • lohocc
  • lohocc
  • 2015年03月10日 11:38
  • 382

Java内存分配机制详解

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

java内存分配机制

通过这几天对一个内存溢出程序的监控,学习了程序运行时对内存的使用机制,在这里和大家分享下。         Java程序运行在JVM(Java  Virtual Machine,Java虚拟机)上,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java的内存分配机制
举报原因:
原因补充:

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