Java中 String s = new String(“hello“)和String s = “hello“的区别
区别:
String s1 = new String(“hello”)会创建2个对象,首先是new String(“hello”)会创建一个字面量对象保存到字符串常量池中,然后在堆内存中申请内存存储String类型的对象,地址值赋给引用 s1;s1会去方法区的常量池中找有没有“hello”,如果有的话会将s1的引用地址指向常量池的“hello”
String s = “hello”由于上述过程,常量池中已经存储了一个hello,此时只需要将hello所在空间的地址值赋给引用 s;
因为 == 比较的是内存地址是否相同,s1和s是在堆内存中的两个不同地址的引用,所以结果是false
此后又新建s2对象并赋值s,相当于把s复制一份取名s2;因为s2指向的也是常量池中的“hello”,所以s2的引用地址和s的地址一样
因为.equals是比较两个字符串内容是否相同,所以s.equals(s1)为true
回顾:
==,比较运算符,可以比较基本类型,也可以比较引用类型。
- 比较基本类型时,比较的是值是否相同
- 比较引用类型时,比较的是地址值是否相同
equals方法,是Object类中的方法,只能比较引用类型
- 没有重写时,比较的是地址值
- 重写后,一般比较的是引用所指的对象的内容
Java中 String s = new String(“hello“)和String s = “hello“的区别相关推荐
- java中操作字符串都有哪些类,他们之间有什么区别?
java中操作字符串的类有哪些? String StringBuffer StringBuilder 区别 我们可以先看一下这几个类的继承关系图 从类的继承关系上来开的话,String和StringB ...
- Java中public,private,protected以及default的访问权限区别
** Java中public,private,protected以及default的访问权限区别 ** 首先,从public的字面意思上就能够知道public所指的是公共的,从而我们可以知道publi ...
- Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别? Java 中访问数据库的步骤 1)注册驱动: 2)建立连接: 3)创建Statement: 4)执 ...
- Java中利用MessageFormat对象实现类似C# string.Format方法格式化
我们在写C#代码的时候常常会使用到string.Format("待格式化字符串{0},{1},....",参数1,参数2,...),来格式化字符串,特别是拼接字符的时候,这种方式使 ...
- Java中字符串的学习(一)String类的概述及常见方法使用
转载请注明出处http://www.cnblogs.com/devtrees/p/4347079.html (拓展:Api:编程语言对外给我们提供的应用程序接口.) 一.概述: 我们平时上网发帖,帖子 ...
- Java中WeakReference,SoftReference,PhantomReference和Strong Reference之间的区别
很长一段时间以来,WeakReference和SoftReference都已添加到Java API中,但是并不是每个Java程序员都熟悉它. 这意味着在Java中使用WeakReference和Sof ...
- java中Class对象详解和类名.class, class.forName(), getClass()区别
一直在想.class和.getClass()的区别,思索良久,有点思绪,然后有网上搜了搜,找到了如下的一篇文章,与大家分享. 原来为就是涉及到Java的反射----- Java反射学习 所谓反射 ...
- java中implements是什么意思_Java:extends和implements的区别+用法
Java代码中的extends和implements让我感到很迷惑,现在终于弄明白它们之间的区别和用法了. //定义一个Runner接口 public inerface Runner { int ID ...
- java中strings1等于s2_s1,s2都是String对象,说说表达式s1==s2与s1.equal(s2
s1,s2都是String对象,说说表达式s1==s2与s1.equal(s2 (2009-10-20 21:33:58) 标签: 杂谈 问题:s1,s2都是String对象,说说表达式s1==s2与 ...
- java中实现同步的两种方式:syschronized和lock的区别和联系
转载自 http://www.cnblogs.com/xiohao/p/4151408.html Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用s ...
最新文章
- 微信小程序图标不支持html,微信小程序实现自定义加载图标功能
- 【Android 安全】DEX 加密 ( DEX 加密原理 | DEX 加密简介 | APK 文件分析 | DEX 分割 )
- numpy 笔记:改变形态
- html5 table删除修改,一个可以增加和删除行的table并可编辑表格中内容
- java8 hadoop_java8-模拟hadoop
- 世界级数学家加入华为,曾获菲尔兹奖 网友:终于知道数理化的重要了
- ThinkPHP V5.0.5漏洞_ThinkPHP 5.x 远程命令执行漏洞分析与复现
- C 语言:我不是针对谁,我是说在座的都是乐色
- 网络采集软件核心技术剖析系列(1)---如何使用C#语言获取博客园某个博主的全部随笔链接及标题...
- Linux vsftpd配置大全
- 尽点力,虽然也不一定有用
- 附加数据库及配置ODBC的方法
- 论文模型构建的步骤_论文实证经验分享|VAR模型实操步骤(下)
- 永磁同步电机死区补偿C语言代码
- RouterOS之DDNS(动态域名)
- Android必备回顾:4、单例模式深究
- 华为手机NFC模拟加密的门禁卡详细教程
- 微分中值定理定义及几何意义
- 基于微信小程序实现番茄钟专注时间项目演示【附项目源码+论文说明】
- 从智能监理到个人随身智能应用,尽情体验tooz智能眼镜
热门文章
- Python数据可视化第四节-图表样式美化实例
- JWT Token、ID Token、Access Token、Refresh Token
- 数字电路_2. 各类触发器
- 记录-关于网站的欢迎页,初次进入可见欢迎页,再次进入就直接显示主页了
- 玖月:如果真的能够穿越回到过去,我可能只会给自己一个微笑
- chrome审查元素功能
- HTML5游戏开发经验及开发工具分享
- 多传感器融合定位三-3D激光里程计其三:点云畸变补偿
- linux web 网站搭建
- python统计小说人物出现次数_使用python统计《三国演义》小说里人物出现次数前十名,并实现可视化。...