Java题-直接赋值与重新创建内存
发布日期:2021-06-30 10:51:58
浏览次数:2
分类:技术文章
本文共 491 字,大约阅读时间需要 1 分钟。
今天去面试了,其中有几个笔试题,印象深刻(因为我不会,所以印象深刻)
代码如下:
package my;public class main { public static void main(String[] args) { String a="hello"; String b="hello"; String c=new String("hello"); String d=new String("hello"); System.out.println(a==b); System.out.println(c==d); System.out.println(a==c); }}
运行结果如下:
造成这个结果的原因是(百度的):
如果是直接赋值的是取常量池的数据, 如果是new的,永远都是重新创建内存. 所以 s == d 因为在object比较中 ==比较的是内存地址, 而new String()是告诉jvm重新创建一块内存.
"hello"就是一个匿名对象, 引用的还是常量池的 你只需要理解 对象中==比较的是内存地址即可, new就是开辟一块内存
转载地址:https://it1995.blog.csdn.net/article/details/79418096 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月09日 10时54分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
kalibr使用记录
2019-04-30
kvm部署
2019-04-30
exsi部署
2019-04-30
keepalived
2019-04-30
zabbix监控脑裂
2019-04-30
lnmp部署
2019-04-30
nginx平滑升级
2019-04-30
location区段
2019-04-30
nginx访问控制、基于用户认证、https配置
2019-04-30
用zabbix监控nginx
2019-04-30
rewrite和if语句
2019-04-30
nginx实现负载均衡和动静分离
2019-04-30
SaltStack
2019-04-30
Packer 如何将 JSON 的配置升级为 HCL2
2019-04-30
Ubuntu 安装 NTP 服务
2019-04-30
NeoFetch - Linux 使用命令行查看系统信息
2019-04-30
Jenkins 控制台输出中的奇怪字符
2019-04-30