博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己写的demo---equals()跟==的区别
阅读量:6203 次
发布时间:2019-06-21

本文共 2429 字,大约阅读时间需要 8 分钟。

1 package equals; 2  3 /*public class equals { 4     //基本数据类型跟引用数据类型(复合数据类型), 5      //在引用数据类型中equals方法被重写,一般用来比较内存地址 6     public static void main(String args[]) 7     { 8         String a="zengzhiwei"; 9         String b="zengzhiwei";//指向同一个引用10         if(a==b)//比较内存地址11         {12             System.out.println("a==b");            13         }14         else{15             System.out.println("a!=b");16         }17         if(a.equals(b))//比较值18         {19             System.out.println("a equals b");20         }21         else{22             System.out.println("a not equals b");23         }24         25     }26         *//**27      *         a==b28             a equals b29      *//*30 31 }*/32 /*public class equals{33     public static  void main(String args[])34     {35         String a="zengzhiwei";36         String b=new String("zengzhiwei");37         if(a==b)//比较内存地址38         {39             System.out.println("a==b");            40         }41         else{42             System.out.println("a!=b");43         }44         if(a.equals(b))//比较值45         {46             System.out.println("a equals b");47         }48         else{49             System.out.println("a not equals b");50         }51         52     }53     *//**54      *         a!=b55             a equals b56      *//*57     58 59 }*/60 //对于复合型数据,如果没有覆盖(重写)equals()方法的话还是是比较的“内存地址”61 public class equals{62     public static void main(String args[])63     {64         String a="zengzhiwei";65         String b=new String("zengzhiwei");66         b.intern();//检查字符串池里是否存在"zengzhiwei"这么一个字符串,如果存在,就返回池里的字符串;67                    //如果不存在,该方法会 把"zengzhiwei"添加到字符串池中,然后再返回它的引用。68         if(a==b)//比较内存地69         {70             System.out.println("a==b");            71         }72         else{73             System.out.println("a!=b");74         }75         if(a.equals(b))//比较值76         {77             System.out.println("a equals b");78         }79         else{80             System.out.println("a not equals b");81         }82         83     }84     /***85      *     a!=b86         a equals b87         但是在88         http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html#undefined89         中是:说什么内存缓冲池。可是我见不到这种效果90         s1 == s291         s1 equals s292      */93 }

还有有几点疑惑的东西:

1.怎么我用了intern()之后还是 a!=b;

2.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 

转载于:https://www.cnblogs.com/zzzzw/p/4976576.html

你可能感兴趣的文章
神奇的图像处理算法
查看>>
java maven 操作 收集的一些命令
查看>>
springcloud-05-ribbon中不使用eureka
查看>>
SPOJ QTREE6 lct
查看>>
Java - 对象(object) 具体解释
查看>>
[.NET跨平台]Jexus独立版本的便利与过程中的一些坑
查看>>
swift菜鸟入门视频教程-09-类和结构体
查看>>
Oracle数据库备份恢复,巡检须要关注的对象设置以及相关恢复概述
查看>>
jQuery序列化表单为JSON对象
查看>>
使用malloc分别分配2KB的空间,然后用realloc调整为6KB的内存空间,打印指针地址...
查看>>
Redis 它是什么?它用来做什么?它的优势与短板如何?
查看>>
vue13过滤器 debounce延迟、limitBy、filterBy、orderBy
查看>>
MSSQL分组取后每一组的最新一条记录
查看>>
jQ效果:简单的手风琴效果
查看>>
Android Studio环境搭建
查看>>
Java Persistence with MyBatis 小结2
查看>>
python socket 多人聊天室
查看>>
nodejs中require的路径是一个文件夹时发生了什么
查看>>
P1401 城市(30分,正解网络流)
查看>>
用css实现自定义虚线边框
查看>>