zoukankan      html  css  js  c++  java
  • Groovy In Action 笔记 (2) -- '=='与‘equals’

    聊聊Groovy中的 '==' 与 'equals'

    先看看Java中它们的区别

    • '=='
      • 对于值类型,则比较值
      • 对于引用类型,则比较两个变量是否指向的为相同内存地址
    • 'equals'
      • 如果类没有override此方法,则比较两个变量是否指向的为相同内存地址
      • 如果有override此方法,则使用子类实现的逻辑进行比较,如String类。
    • 如下代码
      • /*
         * This Java source file was generated by the Gradle 'init' task.
         */
        package practices;
        
        public class App {
            public static void main(String[] args) {
                String str1 = "Hello";
                String str2 = "Hello";
                String str3 = new String("Hello");
        
                System.out.println(str1 == str2) ;// true,此处由于String字面量有缓存
        
                System.out.println(str1 == str3) ;// false
        
                System.out.println(str1.equals(str2)) ;// true
        
                System.out.println(str1.equals(str3)) ;// true
        
            }
        }

    再看看Groovy中的表现:

    • =='
      • 对于值类型,则比较值
      • 对于引用类型,则比较两个变量是否指向的为相同内存地址 -- 注意String 类型有例外,String类override了==操作符,实现了内容比较
    • 'equals'
      • 如果类没有override此方法,则比较两个变量是否指向的为相同内存地址
      • 如果有override此方法,则使用子类实现的逻辑进行比较,如String类。
    • 如下代码
      • def str1 = "hello"
        def str2 = "hello"
        def str3 = new String("hello")
        
        println(str1 == str2) // true
        
        println(str1 == str3) // true
        
        println(str1.equals(str2)) // true
        
        println(str1.equals(str3)) // true

    ps:

      Groovy与Java中instanceof 操作为true的前提:两个类由相同的classloader加载。如果使用不同的加载器,即使加载相同的代码文件,两个类的实例分别与对方类进行 instanceof操作,结果均为false.

  • 相关阅读:
    24.纯 CSS 创作出平滑的层叠海浪特效
    23.1纯 CSS 创作一个菜单反色填充特效
    23.纯 CSS 创作一个菜单反色填充特效
    22.纯 CSS 创作出美丽的彩虹条纹文字
    21纯 CSS 创作文本滑动特效的 UI 界面
    BZOJ 2384: [Ceoi2011]Match (KMP,树状数组)
    BZOJ 1511: [POI2006]OKR-Periods of Words KMP
    UOJ #6. 【NOI2014】随机数生成器 贪心
    UOJ #25. 【IOI2014】Wall 线段树
    BZOJ 3670: [Noi2014]动物园 KMP
  • 原文地址:https://www.cnblogs.com/FsharpZack/p/13778678.html
Copyright © 2011-2022 走看看