内存的划分

1寄存器

2 本地方法区

3 方法区

4 栈内存

存储的都是局部变量 变量所属的作用域一旦结束,该变量就自动释放

5 堆内存

存储的是数组和对象(其实是数组就是对象)  凡是new 建立的都是在堆里

特点:

1 每一个实体都有首地址值

2 堆内存中的每一个变量都有默认初始值,根据类型的不同而不同

整数是0 小数是0.0 boolean是false char是’\u0000’   、

3 当堆内的东西没有被引用时,会被JAVA垃圾回收机制回收

时间: 2024-10-20 09:55:31

内存的划分的相关文章

内存的划分 & 程序代码运行时内存工作流程

内存的划分: 1,寄存器. 2,本地方法区. 3,方法区. 4,栈内存. 存储的都是局部变量. 而且变量所属的作用域一旦结束,该变量就自动释放. 5,堆内存. 存储是数组和对象(其实数组就是对象) ,凡是new建立的都在堆中. 特点: 1)每一个实体都有首地址值. 2)堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同.整数是0,小数0.0或者0.0f,boolean类型是false,char类型是 '\u0000',引用数据类型是NULL 3)垃圾回收机制. 全局变量和局部变量的区别:

[java学习笔记]java语言基础概述之内存的划分&堆和栈

1.内存的划分 1.寄存器         cpu处理 2.本地方法区        和所在系统相关 3.方法区 4.栈内存 5.堆内存 2.栈和堆 1.栈:      存储的都是局部变量.而且变量所属的作用域一旦结束,就释放该变量.      栈中的变量生命周期都很短,更新速度会很快. 局部代码块:限定局部变量的生命周期.局部代码块一旦执行结束,里面的变量就会被释放. 2.堆      存储的是数组和对象.凡是new建立的,都会存在堆里.      特点: 每一个实体都有首地址值. 堆内存中的

JVM的内存区域划分,对象实例化分析

一.JVM程序具体执行过程 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分.在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:                                     如上图所示,Java源代码文件(.java后缀)经过Java编译器编译成为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行.在整个程序执行过程中,JVM会用一

【java】JVM的内存区域划分

学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆.栈以及静态数据区.那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分.在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: 如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加

JVM的内存区域划分以及垃圾回收机制详解

在我们写Java代码时,大部分情况下是不用关心你New的对象是否被释放掉,或者什么时候被释放掉.因为JVM中有垃圾自动回收机制.在之前的博客中我们聊过Objective-C中的MRC(手动引用计数)以及ARC(自动引用计数)的内存管理方式,下方会对其进行回顾.而目前的JVM的内存回收机制则不是使用的引用计数,而是主要使用的"复制式回收"和"自适应回收". 当然除了上面是这两种算法外,还有其他是算法,下方也将会对其进行介绍.本篇博客,我们先简单聊一下JVM的区域划分,

Java 内存区域划分 备忘录

最近看了<深入理解虚拟机>的内存分配与管理这部分的内容,这里做一个的总结,以加深我对知识点的理解,如有错误的地方,还望大神们指出,我及时更正:  内存区域划分 首先是下面这幅图: 图 1.0 这幅图是网上download下来的,但是它可以很直观告诉我们Java虚拟机所管理的几个内存区域(包括方法区.堆.虚拟机栈.本地方法栈.程序计数器五个区域),以及线程作用在这些内存区域时的数据访问方式(虚拟机栈.本地方法栈.程序计数器三个区域是线程独有:方法区.堆两个区域是线程间共享): 1.我们首先看看灰

Java 内存区域划分

        JVM的内存区域划分 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆.栈以及静态数据区.那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分.在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:                                       如上图所示,首先Java源代码文件(.jav

JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释

http://blog.csdn.net/zhushuai1221/article/details/51027024 JVM内存区域划分Eden Space.Survivor Space.Tenured Gen,Perm Gen解释 以下内容转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29632145&id=4616836 jvm区域总体分两类,heap区和非heap区.heap区又分:Eden Space(伊甸园)

JVM内存区域划分及GC简述

通常情况下,JVM(Java Virtual Machine,Java虚拟机)将内存区域划分为以下5个部分: 1.Method Area(Non-Heap)(方法区) --线程共享 2.Heap(堆) --线程共享 3.Program Counter Register(程序计数器) --非线程共享 4.VM Stack(虚拟机栈)--非线程共享 5.Native Method Stack ( 本地方法栈 )--非线程共享 JVM运行的时候会分配好Method Area(方法区)和Heap(堆):

JVM内存区域划分及垃圾回收

第一部分.闲扯+概述 近来在研读<深入理解java虚拟机>一书,读完之后做个小结,算是记录一下自己的学习所得,在成长的路上,只能死磕. 要理解JVM,就要先从其内存区域划分开始,知道其由几部分构成,再了解各部分的功能,这样就能对其整体有一个了解. 话不多说,总体图先呈上: 可以看到,线程私有的内存区域有虚拟机栈.本地方法栈.程序计数器,这些区域都不会出现线程安全问题:而线程共享的区域有堆.方法区. 下面对其各个分区域进行介绍. 第二部分:JVM内存区域划分 1.首先是最简单的程序计数器,每个线