内存空间,缓冲区

内存空间,缓冲区

http://img1.sycdn.imooc.com//climg/6075822c093cf3d116060632.jpg

请问缓冲区是又称为常量池吗,five创建时是在堆中新建了一个地址 而200是常量池中的一个常量,我的理解请问有错吗?如果对了,five指向的是堆中地址还是常量池?为什么地址可以等于一个常量呀?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小班 2021-04-14 11:46:10

同学你好,1、不是的,同学理解有误,缓冲区不是常量池。

    ​2、缓存区:专门是指包装类自带的缓冲区,可以存放包装类中的内容。

http://img1.sycdn.imooc.com//climg/6076647309eefe2806230327.jpg

​    ​3、常量池:常量池是Java中专门用来存储常量的区域,存放字符串常量和基本类型常量如100,12.5等基本数据类型的数据,还有String类型的值如"123"都是存储到常量池中的。

    ​4、堆中存的是对象,存放所有new出来的对象;

        栈中存的是基本数据类型和堆中对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中;

祝学习愉快!

  •  老师您说  “栈中存的是基本数据类型和堆中对象的引用,常量池页存放基本类型常量如100,12.5等基本数据类型的数据”。更详细的理解应该是 “栈中存的是基本数据类型(变量,局部的)和堆中对象的引用,常量池页存放基本类型常量(final,全局的)如100,12.5等基本数据类型的数据”对吗?

    还有 栈和常量池有什么关系?

    2021-09-28 23:45:25
  • 同学你好,

    1、是的,理解是正确的~

    2、 两者之间的关系不大,需要针对具体代码来决定哟~例如:

    Java中所有局部变量和对象的引用都是存储在栈内存中的,int a = 1;它是局部变量肯定是在栈内存,但是它与常量池没有关系;

    祝学习愉快~

    2021-09-29 10:21:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师