zoukankan      html  css  js  c++  java
  • 自己写的demo---equals()跟==的区别

     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==b
    28             a equals b
    29      *//*
    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!=b
    55             a equals b
    56      *//*
    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!=b
    86         a equals b
    87         但是在
    88         http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html#undefined
    89         中是:说什么内存缓冲池。可是我见不到这种效果
    90         s1 == s2
    91         s1 equals s2
    92      */
    93 }

    还有有几点疑惑的东西:

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

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

    ---- 动动手指关注我!或许下次你又能在我这里找到你需要的答案!ZZZZW与你一起学习,一起进步!
  • 相关阅读:
    Win10系列:VC++绘制几何图形3
    Win10系列:VC++绘制几何图形2
    二进制的编码
    win10下更新anaconda和pip源
    在win10上安装FFmpeg
    git设置代理模式,仅为github设置代理
    python3的pip3安装
    texlive2019安装
    ubuntu中安装python3和pip
    macbook安装win10
  • 原文地址:https://www.cnblogs.com/zzzzw/p/4976576.html
Copyright © 2011-2022 走看看