java对象内存管理的简单认识! 女爷i 2022-09-30 13:53 127阅读 0赞 java里面有句名言:Everything is object!但是java还算不上是纯面向对象的语言。它的数据类型包括基本数据类型(byte,short,int,char,long ,float,double,boolean)和引用类型(数组,类对象等)。 java语言是C++的儿子。java升级了C++中对于对象的理解,除去了C,C++中难以理解的指针使用,让编程人员更加舒适的表达自己的程序(只是从复杂性和易操作性方面考虑,另外一个说法是C语言让程序员更加随心所欲放飞思想,因为编译系统给予程序员更多的信任)。虽然java语言不再推荐程序员使用指针,然而我们还是能在程序中看到指针的影子。只不过换了一种称呼,名曰“引用”。 看了李刚的《疯狂java》,对一些基础的概念有了更深一步的了解。这实在不失为一本入门级好书,对入门到中级的Java学习者安利一下。 即使是学习高级语言,对于自己定义的类,数据,变量在底层的存放都需有一个大概的了解。这对于日后优化大有脾益。 在java中,数组也是一种引用。数组名就是引用变量。下面看看在内存中存放情况。 ![这里写图片描述][SouthEast] 以上是java语言在定义变量时候,系统分配内存的情况。变量所指的内存存放的都是默认的初始值。由箭头可知,变量a,b都是引用变量,这个是和指针的功能一模一样,指向分配的内存首地址,代表内存地址。 这里数组定义有两种方式: 1. type\[\] arrayName 2. type arrayName\[\] 可能受C语言定义数组的影响,我们习惯后者定义。 但是java中把数组做为引用来处理,显然前者是更符合定义变量的理解的。 这里有个重要的概念:栈内存和堆内存。我也是初学者,傻傻分不清。只要记住,数组元素,引用变量所指的对象的值都是分配在堆内存中的,而引用变量,方法这些都是存放在栈内存中的,方法对应有方法栈,方法中定义的变量都是存放在方法栈中。栈内存中的引用变量是访问堆内存中数据的唯一方式。 由于引用变量一般放在方法栈内存中,当方法运行结束,对应的方法栈内存会销毁释放。但是在程序中创建的对象,它是保存在堆内存中的,不会随着方法的结束而销毁释放,这个对象还可能被其他的引用变量引用。只有当对象失去引用时,这个对象变成垃圾,系统的机制可以再合适的时候回收这部分内存。 如果在上图所示的a,b引用变量,执行以下语句 b=a; 将a的值赋给b,那么此时引用变量b指向a所指向的对象,原先被b指向的对象没有任何引用变量引用,变成了垃圾。 ![这里写图片描述][SouthEast 1] 后记:看了各位大手的博文,凭良心说,我对程序设计一无所知。所谓闻道有先后,术业有专攻。计算机覆盖面太广,涉及知识浩如烟海,希望自己在某方面有所建树,至少有所长吧。路漫漫其修远兮! [SouthEast]: /images/20220705/e2452ce0dbc84b2d9020f5e90566733e.png [SouthEast 1]: /images/20220705/b1e0559b8b3047d683e95e46ea3d0cbb.png
相关 Java内存管理:对象泄漏问题分析 在Java编程中,对象泄漏是一个常见的内存管理问题。简单来说,对象泄漏是指申请了内存但未正确释放,导致系统可用内存减少。 对象泄漏的具体表现包括: 1. `new`操作后忘 蔚落/ 2024年09月20日 15:54/ 0 赞/ 7 阅读
相关 JVM内存管理:Java对象泄漏的问题 在Java JVM中,内存管理是非常关键的部分,特别是涉及到对象的生命周期和垃圾回收机制。而对象泄漏问题就是这个过程中的一个常见现象。 1. **定义**:对象泄漏是指未正确 亦凉/ 2024年09月11日 07:30/ 0 赞/ 21 阅读
相关 内存泄漏问题解决:Java对象内存管理策略 内存泄漏是编程中常见的问题,特别是在使用Java语言进行对象内存管理时。以下是几个关键的Java对象内存管理策略: 1. **垃圾回收机制**: Java采用自动垃圾回 女爷i/ 2024年09月10日 18:03/ 0 赞/ 26 阅读
相关 Java内存管理:对象泄漏和内存溢出问题 在Java编程中,内存管理是非常重要的一部分。以下是关于对象泄漏和内存溢出的两个常见问题: 1. 对象泄漏: 当一个对象被创建,但后续没有适当的代码对其进行引用或垃圾回 太过爱你忘了你带给我的痛/ 2024年09月06日 07:15/ 0 赞/ 18 阅读
相关 Java-简单认识类和对象 一、初步认识面向对象 1.1 什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切 布满荆棘的人生/ 2024年03月22日 22:45/ 0 赞/ 60 阅读
相关 java对象的内存管理_java中对象的内存管理 我正在读这本关于数据结构的书,它涵盖了Java中的内存管理和孤立对象.教科书说明如下: For example, consider the three assignment 旧城等待,/ 2022年11月07日 05:22/ 0 赞/ 134 阅读
相关 java对象内存管理的简单认识! java里面有句名言:Everything is object!但是java还算不上是纯面向对象的语言。它的数据类型包括基本数据类型(byte,short,int,char,l 女爷i/ 2022年09月30日 13:53/ 0 赞/ 128 阅读
相关 浅谈Java对象内存管理 Java对象内存管理分为三块 分别为 堆内存 栈 方法区 JVM提供为java程序提供并且管理所需的空间 \- 堆 专门存储用new关键字创建的对象 怼烎@/ 2022年03月06日 05:26/ 0 赞/ 226 阅读
还没有评论,来说两句吧...