`

Java中的内存与分配

阅读更多

在Java中,将内存划分为 堆内存 和 栈内存 两种。

栈内存分配原则:
在Java中,函数中定义的一些 “基本类型” 的 变量 和 对象 的 引用变量 都是在函数的“栈内存”中为这个变量
分配内存空间,当超过变量的“作用域”后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。

堆内存分配原则:
堆内存用来存放有 new 关键字创建的对象和数组,在堆内存中分配内存,有Java虚拟机的“自动垃圾回收器”来管理。
在堆内存中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象在堆中的
“首地址”,栈中的这个变量就成了 数组或对象 的 “引用变量”,以后就可以在程序中使用栈中的引用变量来访问堆中的
数组或对象,引用变量就相当于是为数组或对象起的一个名称(代号)。

“引用变量”(也可以叫做“指针变量”)是普通的变量,定义时在栈中分配,引用变量在程序运行到其作用域外之后被释放。而数组和对象本身在
“堆内存”中分配,即使程序运行到使用 new 产生的数组和对象的语句所在的代码之外,数组和对象本身所占据的内存不会
被释放,当数组和对象在没有“引用变量”指向它时,才会变为垃圾,不能再被使用,但仍然占据内存空间不放,在随后一个
“不确定”的时间被“垃圾回收器”收走(释放掉)。这也是Java比较占内存的原因。
----摘自:张孝祥《Java就业培训教程》

分享到:
评论

相关推荐

    java实现内存动态分配

    这些区域在Java内存模型中同样占有重要地位,但在“java实现内存动态分配”的上下文中,主要关注堆和栈的动态分配。 综上所述,Java实现内存动态分配涉及到对堆内存、栈内存的理解,以及对垃圾回收机制的掌握。通过...

    java中内存分配

    "java中内存分配" Java 中的内存分配是 Java 程序员必须掌握的重要知识。JAVA 中内存分配的问题是指 Java 程序在运行时如何在内存中存储数据的过程。Java 程序运行时有 6 个地方可以存储数据,它们分别是寄存器、栈...

    Java中堆内存与栈内存分配浅析

    ### Java中堆内存与栈内存分配浅析 #### 一、引言 在Java编程语言中,内存管理是一项至关重要的技术。程序运行时所使用的内存主要分为两类:堆内存(Heap Memory)和栈内存(Stack Memory)。理解这两种内存类型的...

    java程序中的内存分配问题

    Java程序在运行时的内存分配是一个关键的概念,它关乎...理解并掌握这些Java内存分配的知识点,对于编写高效、稳定的Java程序至关重要。通过实践和深入学习,开发者可以更好地控制程序的内存使用,减少错误,提升性能。

    java实现的内存分配

    Java内存分配的核心机制是垃圾收集(Garbage Collection, GC),它负责自动回收不再使用的内存。Java提供了几种不同的垃圾收集器,如Serial、Parallel、Concurrent Mark Sweep (CMS) 和G1等,它们各有优缺点,适用于...

    java核心 内存分配问题

    Java 内存分配是理解Java程序性能和...理解Java内存分配对于编写高效、无内存泄漏的代码至关重要,同时也对诊断和解决性能问题有着深远的影响。通过深入了解这些概念,开发者能够更好地设计和优化他们的Java应用程序。

    java中jvm内存分配相关资料总结整理

    - **Java内存模型(JMM)**:定义了线程之间如何共享和访问内存,确保并发编程中的可见性、有序性和原子性。 7. **JVM运行原理** - **类加载机制**:JVM通过类加载器加载类,包括加载、验证、准备、解析和初始化...

    深入Java核心 Java内存分配原理精讲

    Java内存分配与管理是Java的核心技术之一,今天我们深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域:  ◆寄存器:我们在程序中无法控制  ◆栈:存放基本类型的...

    java内存对象分配过程研究

    本文将基于Java虚拟机(JVM)的内存模型,详细探讨对象在Java中的内存分配过程。 #### 二、Java虚拟机内存区域 Java虚拟机(JVM)是Java程序运行的基础平台,其内部有一套完整的内存管理机制。根据JVM规范,JVM的内存...

    java内存分配情况

    Java内存分配主要涉及五个区域:寄存器、栈、堆、静态域和常量池。在Java编程中,理解这些内存区域的分配规则对于优化代码性能和避免内存泄漏至关重要。 1. **寄存器**:这是最快捷的存储区域,但不在Java程序员的...

    50.java内存分配.zip

    50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java...

    java内存分配机制详解

    本文旨在详细介绍Java内存分配机制中的几个关键概念:寄存器、栈、堆、静态域、常量池及其在Java运行时环境中的角色与功能。 #### 二、Java内存分配机制概述 Java内存分配主要涉及以下几个区域: 1. **寄存器**:...

    JAVA中的内存分配策略

    ### JAVA中的内存分配策略 #### 一、内存分配的基本概念 在探讨JAVA中的内存分配策略之前,我们需要了解一些基本的概念。 - **静态存储分配**:指的是在编译时就能确定每个数据目标在运行时刻的存储空间需求,...

    Java内存分配浅析

    Java内存分配是Java编程中非常重要的概念,它涉及到程序运行时的数据存储和管理。Java程序在JVM(Java Virtual Machine,Java虚拟机)上运行,JVM作为一个平台无关的执行环境,负责Java程序的内存管理和执行。理解...

    Java运行时内存分配

    ### Java运行时内存分配详解 #### 一、引言 Java作为一种广泛使用的编程语言,其内存管理机制一直是开发者关注的重点之一。Java程序在运行时如何分配内存?对象是如何存储的?这些问题不仅对于深入理解Java虚拟机...

    附录:Java的内存分配

    ### Java的内存分配详解 #### 一、Java内存模型概览 Java的内存管理是Java程序性能的关键之一。为了确保程序高效稳定地运行,开发者必须理解Java如何管理和分配内存资源。Java程序的内存主要分为以下几个部分: -...

    深入Java核心_Java内存分配原理精讲

    Java内存分配原理是Java编程中的重要一环,它关乎到程序的性能、稳定性和资源管理。深入理解这一主题,能够帮助开发者编写出更高效、更稳定的代码。在Java中,内存分为堆内存、栈内存、方法区(在Java 8之后被元空间...

Global site tag (gtag.js) - Google Analytics