全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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操作详解  # 运算符  # 是用来  # 抛出  # 结果是  # 有可能  # 已有  # 这样做  # 能使  # 不相等  # 自己的  # 是由  # 这两个  # 希望能  # 要用  # 并不代表  # 谢谢大家  # 嫁给  # 主要用于  # 这三个  # 方法来 


相关文章: 建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  如何配置IIS站点权限与局域网访问?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  零基础网站服务器架设实战:轻量应用与域名解析配置指南  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  制作网站怎么制作,*游戏网站怎么搭建?  制作营销网站公司,淘特是干什么用的?  七夕网站制作视频,七夕大促活动怎么报名?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  如何通过PHP快速构建高效问答网站功能?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  建站主机选购指南与交易推荐:核心配置解析  如何用PHP工具快速搭建高效网站?  如何在Windows环境下新建FTP站点并设置权限?  常州自助建站工具推荐:低成本搭建与模板选择技巧  建站之星各版本价格是多少?  如何在阿里云虚拟服务器快速搭建网站?  建站三合一如何选?哪家性价比更高?  h5在线制作网站电脑版下载,h5网页制作软件?  网站制作员失业,怎样查看自己网站的注册者?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  如何设置并定期更换建站之星安全管理员密码?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何规划企业建站流程的关键步骤?  深圳网站制作的公司有哪些,dido官方网站?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  建站之星展会模版如何一键下载生成?  如何快速完成中国万网建站详细流程?  建站之星如何防范黑客攻击与数据泄露?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  装修招标网站设计制作流程,装修招标流程?  ,网页ppt怎么弄成自己的ppt?  如何使用Golang table-driven基准测试_多组数据测量函数效率  如何通过.red域名打造高辨识度品牌网站?  已有域名如何免费搭建网站?  如何在Windows虚拟主机上快速搭建网站?  高性价比服务器租赁——企业级配置与24小时运维服务  建站之星后台密码遗忘如何找回?  建站之星会员如何解锁更多建站功能?  如何通过免费商城建站系统源码自定义网站主题与功能?  如何批量查询域名的建站时间记录?  高端企业智能建站程序:SEO优化与响应式模板定制开发  香港服务器选型指南:免备案配置与高效建站方案解析  建站之星代理如何优化在线客服效率?  如何在Ubuntu系统下快速搭建WordPress个人网站?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  建站之星安装后如何自定义网站颜色与字体?  如何快速配置高效服务器建站软件? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。