楼主: andrew.denver
跳转到指定楼层
上一主题 下一主题
收起左侧

[学Java/C#] 再来一个Java reference的问题

🔗
 楼主| andrew.denver 2020-4-9 10:00:02 | 只看该作者
全局:
冰糖YVONNE 发表于 2020-4-9 08:51
看上一楼,十三楼,附件里有个图。加大米不需要花自己的大米的~

我没有权限看不到哎
回复

使用道具 举报

🔗
freeinstance 2020-4-9 10:55:24 | 只看该作者
全局:
andrew.denver 发表于 2020-4-9 02:17
堆(heap)和栈(stack)有什么区别?   
https://blog.csdn.net/mybelief321/article/details/8912736

我的理解是像boxing一样的:

Stirng a = "";
String b = "";
这两个String就好比primitive type一样, a == b // true

但是 new String("") 就是boxing, 要用.equals()来做值的比较, 因此 a == b // false

===========================分割线==============================

你可以这么理解, 但是注意, a == b 的底层是String pool这种来实现的。至于为什么这样,我感觉可能是为了和primitive type保持一致。供参考
回复

使用道具 举报

🔗
totolin 2020-4-9 11:23:20 | 只看该作者
全局:
冰糖YVONNE 发表于 2020-4-9 05:50
这个图讲的很明白啦

可以问一下你这个图哪里来的呀?什么课呢?求链接
回复

使用道具 举报

🔗
younameit 2020-4-9 12:02:43 | 只看该作者
全局:
string pool的问题

Java中这个legacy的设计之前主要是为了节省new object的空间,现在依然保留主要是为了backward comp。同理,楼主如果去写几个关于Integer的== test也会发现匪夷所思的结果,因为Integer这种wrapper class也有pool,而且这个pool只对[127,-128]的范围做cache
回复

使用道具 举报

🔗
younameit 2020-4-9 12:03:53 | 只看该作者
全局:
andrew.denver 发表于 2020-4-9 05:36
到底是比较reference还是memory location啊?

可否存在,两个不同的reference,指向同一个memory loc ...

Java中直接用==比较的是memory location

多个变量指向同一个memeory location当然是可以的
回复

使用道具 举报

🔗
mchzh 2020-4-9 13:22:20 | 只看该作者
全局:
younameit 发表于 2020-4-9 12:02
string pool的问题

Java中这个legacy的设计之前主要是为了节省new object的空间,现在依然保留主要是为 ...

这个pool和栈的区别在哪里呢?
回复

使用道具 举报

🔗
waterine 2020-4-9 15:21:21 | 只看该作者
全局:
andrew.denver 发表于 2020-4-9 08:06
你确定吗? Java的reference就直接是内存的物理地址吗?

在这个讨论中,指针/引用指向的是物理地址还是虚拟地址并不重要。当我们说两个指针/引用相等的时候,意思就是他们指向的位置相等,而不是两个指针本身的内存位置相等,内存位置相等它们就是同一个指针而不是两个指针了。
回复

使用道具 举报

🔗
 楼主| andrew.denver 2020-4-9 15:31:12 | 只看该作者
全局:
waterine 发表于 2020-4-9 15:21
在这个讨论中,指针/引用指向的是物理地址还是虚拟地址并不重要。当我们说两个指针/引用相等的时候,意思 ...

老兄有兴趣可一个留一个邮箱,加你去一个Java邮件的讨论组哦
回复

使用道具 举报

🔗
 楼主| andrew.denver 2020-4-9 15:32:58 | 只看该作者
全局:
冰糖YVONNE 发表于 2020-4-9 05:50
这个图讲的很明白啦
看不到图,求这个图的链接
回复

使用道具 举报

🔗
fancycode 2020-4-9 17:14:16 | 只看该作者
全局:
推荐读《深入理解java虚拟机,第一章》
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表