Java中==运算符与equals方法的区别及intern方法详解

1. ==运算符与equals()方法
2. hashCode()方法的应用
3. intern()方法
/*
Come from xixifeng.com
Author: 习习风(StellAah)
*/
public class AboutString2
{
public static void main(String[]arsgs)
{
String myName="xixifeng.com";
String myName3="xixifeng";
String myName4=".com";
String myName5=myName3+myName4;
String myName6="xixifeng.com";
if(myName==myName5)
{
System.out.println("myName==myName5");
}
else
{
System.out.println("myName="+myName);
System.out.println("myName5="+myName5);
System.out.println("myName!=myName5");
}
//经运行打印出: myName!=myName5
if(myName==myName6)
{
System.out.println("myName==myName6");
}
else
{
System.out.println("myName!=myName6");
}
//经运行得出: myName!=myName5,myName==myName6
//myName,myName5(myName5的值是由myName3+myName4得到的),myName6 这三个对象的值是相等的, 为什么 它们之间用==进行运算的结果是 myName!=myName5,myName==myName6呢?
//原因在于==运算符
//显然==参与String运算中不是用来比较值的,而是用来比较对象是否相等的.
//那么在String运算中,通过什么方法来比较它们的值是否相等呢,java 提供了equals()方法 ,主要用于比较对象的值是否相等
//示例如下:
//myName==myName5 是false (不是同一个对象)
if(myName.equals(myName5))
{
System.out.println("myName.equals(myName5) 比较的结果是true !");
}
else
{
System.out.println("myName.equals(myName5) 比较的结果是false !");
}
//经运行输出:myName.equals(myName5) 比较的结果是true ! 在由于myName与myName5不是同一个对象,充分说明:
//equals()方法[是用来比较对象的值是否相等]
//再抛出疑问:是不是两个对象的哈希值相等就说明这两个对象相等呢?
//(由上述测试myName==myName5 得出false ①表明myName与myName5不是同一个对象)
System.out.println(myName.hashCode());
System.out.println(myName5.hashCode());
//经测试 ②myName与myName5的哈希值相等
//由①,② 得出: 两个对象的hashCode值相等,不能表明其对象也相等.
//抛出疑问: 怎样使myName与myName5的对象相等呢?
//引入intern()方法
myName5=myName5.intern();
if(myName==myName5)
{
System.out.println("(myName==myName5) 得true");
}
else
{
System.out.println("(myName==myName5) 得false");
}
//经运行打印出: (myName==myName5) 得true
//结论: intern()方法能使两个(对象不相等而值相等的)对象变得相等
//myName5.intern();的意思,可以解释为: myName5在内存中查找对象嫁给自己,条件是,该对象要与自己的值相等. 找到了,就指定该对象.
//myName5找到对象,并认定,就不必再创建对象了,所以说这样做,可以节约内存资源.
//抛出疑问: 什么样的对象建议使用intern()呢?
// myName="xixifeng.com" myName6="xixifeng.com", myName与myName6的对象是相等的,上述已经证实.
// 所以说,对象在直接赋予同样的值的时候没有必要用intern().
//myName="xixifeng.com" myName5=myName3+myName4,它们的值相等,但是对象不相等,上述已经证实.
//所以说, 对象在间接赋予(有可能与已有对象)同样的值的时候,建议用一下intern()方法,从而可公用内存中存在的对象.
//==参与int型运算中,也营造类似的比较
int i=8;
int j=3;
int k=5;
int m=j+k;
int n=8;
if(i==m)
{
System.out.println("i="+i);
System.out.println("m="+m);
System.out.println("i==m");
}
else
{
System.out.println("i!=m");
}
if(i==n)
{
System.out.println("... ... ... ...");
System.out.println("i="+i);
System.out.println("n="+n);
System.out.println("i==n");
}
else
{
System.out.println("i!=n");
}
//经运行得出i=m(m的值由j+k得到),i=n
//i,m,n的值都相等 , 由于i==m 得出true i==n得出true
//所以可以得出结论: ==参与非对象类型运算时,是用来比较常量的值是否相等
}
}
综上所属,得出如下结论:
1) ==运算符参与对象类型运算时是用来比较对象是否想得的.
2) ==运算符参与非对象类型运算时是用来比较值是否相等的.
3) equals()方法用于比较两个对象的值是否相等
4) 两个对象的hashCode()值相等,并不代表其对象也相等
5) intern()方法能使两个(对象不相等而值相等的)对象变得相等,从而可以公用内存已有的对象,这样做可以节约内存资源.
6) 对象在间接赋予(有可能与已有对象)同样的值的时候,建议用一下intern()方法,从而可公用内存中存在的对象.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java中==运算符与equals方法的区别及intern
# java
# equals与
# ==
# 区别
# 详解java==运算符和equals()方法的区别
# Java中比较运算符compareTo()、equals()与==的区别及应用总结
# java的==运算符和equals操作详解
# 运算符
# 是用来
# 抛出
# 结果是
# 有可能
# 已有
# 这样做
# 能使
# 不相等
# 自己的
# 是由
# 这两个
# 希望能
# 要用
# 并不代表
# 谢谢大家
# 嫁给
# 主要用于
# 这三个
# 方法来
相关文章:
已有域名如何免费搭建网站?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
建站之星24小时客服电话如何获取?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
详解jQuery停止动画——stop()方法的使用
魔方云NAT建站如何实现端口转发?
制作网站外包平台,自动化接单网站有哪些?
如何设置并定期更换建站之星安全管理员密码?
广州建站公司哪家好?十大优质服务商推荐
Python路径拼接规范_跨平台处理说明【指导】
电商网站制作公司有哪些,1688网是什么意思?
如何通过山东自助建站平台快速注册域名?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
大型企业网站制作流程,做网站需要注册公司吗?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
家庭建站与云服务器建站,如何选择更优?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
行程制作网站有哪些,第三方机票电子行程单怎么开?
如何通过服务器快速搭建网站?完整步骤解析
建站之星2.7模板:企业网站建设与h5定制设计专题
建站之星安装需要哪些步骤及注意事项?
,怎么在广州志愿者网站注册?
如何用VPS主机快速搭建个人网站?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
如何在腾讯云服务器上快速搭建个人网站?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
如何在香港免费服务器上快速搭建网站?
广州商城建站系统开发成本与周期如何控制?
建站主机系统SEO优化与智能配置核心关键词操作指南
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何通过老薛主机一键快速建站?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
南宁网站建设制作定制,南宁网站建设可以定制吗?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
如何基于PHP生成高效IDC网络公司建站源码?
如何自定义建站之星网站的导航菜单样式?
如何在阿里云完成域名注册与建站?
建站主机服务器选型指南与性能优化方案解析
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何通过商城免费建站系统源码自定义网站主题?
建站之星后台管理如何实现高效配置?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何快速登录WAP自助建站平台?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
如何选择域名并搭建高效网站?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。