首页 > 其他分享 >面向对象 栈和堆

面向对象 栈和堆

时间:2024-03-26 20:56:27浏览次数:33  
标签:抽水 对象 面向对象 引用 水桶 堆中 属性

Me:对象在栈中,属性在堆中,属性属于对象的一部分

GPT:在 Java 中,对象的引用存储在栈中,而对象本身存储在堆中,属性和方法就是对象的本身。对象的属性确实存储在堆中,但是对象本身并不是存储在栈中,而是通过引用指向堆中的实际对象。

Me:那对象的引用是在栈中,对象本身在堆中,那可以比喻成堆为一个水桶,栈为一个抽水器,你想调用那个堆中的属性,这时候就要用到栈了,而栈就是抽水管,水桶就是堆,想引用水桶里面的那些堆,就用抽水管把它引用出来

GPT:这个比喻相当生动,并且相当准确地概括了栈和堆的关系。

在这个比喻中,堆可以比作一个大水桶,它存放着对象及其属性,而栈可以比作一个抽水器,它存放着指向堆中对象的引用。当我们想要访问堆中的对象属性时,我们实际上是通过栈中的引用来获取堆中对象的内容,就像使用抽水器来从水桶中取水一样。

这种比喻可以帮助我们更直观地理解栈和堆之间的关系,以及在 Java 中对象的创建和访问过程。

标签:抽水,对象,面向对象,引用,水桶,堆中,属性
From: https://www.cnblogs.com/wjdzh/p/18097548

相关文章

  • JAVA面向对象基本概念、类和对象
    基本概念一、什么是面向对象面向对象是一种编程思想面向对象是一种思考问题的思维方式二、建立面向对象的思维方式先整体,在局部;先抽象,在具体;能做什么,再做什么类和对象类是分类类别,通过分类可以区分不同事物种类类是具有一组相同特征(属性)与行为(方法)的事物集合类和对象的......
  • C++面向对象整理(9)之类型转换 dynamic_cast、static_cast、const_cast及其安全性
    C++面向对象整理(9)之C++的类型转换dynamic_cast、static_cast、const_cast注:整理一些突然学到的C++知识,随时mark一下例如:忘记的关键字用法,新关键字,新数据结构C++的类型转换C++面向对象整理(9)之C++的类型转换dynamic_cast、static_cast、const_cast一、C++的类型转换......
  • 卡码java基础课 | 21.图形的面积(面向对象)
    学习内容:面向对象的特性,封装、继承、多态。重点归纳:成员变量的定义:访问修饰符、数据类型、变量名。访问修饰符,private只能类内部使用,protected只能类内部和子类使用,public可以从任何地方访问。方法:访问修饰符、返回类型、方法名、参数列表。以及构造函数。1.封装:通过将属性设......
  • 面向对象09;什么是继承
    一、Object类packagecom.oop.demo05;//在Java中,所有的类都默认直接或间接继承Object类//父类publicclassPerson{publicvoidsay(){System.out.println("说了一句话");}}packagecom.oop.demo05;//学生is人,派生类,子类//子类继承了父类,就会......
  • 面向对象08:封装详解
    packagecom.oop.demo04;//类private:私有publicclassStudent{//属性私有,封装大多数时候都是对于属性来的privateStringname;//名字,以前public所有人都可以操作这个名字,现在属性私有就不让所有人都可以操纵这个属性了privateintid;//学号priva......
  • JAVA面向对象高级三:泛型方法,泛型的通配符和泛型的上下限,泛型注意事项
         上限技术: 下限技术:   ......
  • JAVA面向对象高级三:枚举类认识 枚举引用场景
    1.枚举:特殊的类  抽象枚举,枚举类实现抽象方法。 packagecom.itheima.枚举;publicclasstest{publicstaticvoidmain(String[]args){//目标:认识枚举Aa1=A.x;System.out.println(a1);//1.枚举类的构造器是私有的,不......
  • JAVA面向对象高级三:匿名内部类
    1.认识匿名内部类: packagecom.itheima.匿名内部类;publicclasstest{publicstaticvoidmain(String[]args){//把这个匿名内部类编译成一个子类,然后会立即创建一个子类对象出来AnimalA=newAnimal(){@Overridepublicv......
  • java SE(三):面向对象②
    一、this关键字1、概念this关键字代表当前对象①使用this关键字引用成员变量②使用this关键字引用成员方法或构造方法。在一个类的方法或构造方法内部,可以使用“this.成员变量名”这样的格式来引用成员变量名,常常用来区分同名的成员变量和局部变量。publicclassDe......
  • Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向
    Java基础什么是JavaJava是一种由SunMicrosystems于1995年首次发布的编程语言和计算平台。Java是一种通用的、基于类的、面向对象的编程语言,旨在减少实现依赖性。它是一个应用程序开发的计算平台。Java快速、安全、可靠,因此在笔记本电脑、数据中心、游戏机、科学超级计......