首页 > 其他分享 >==与equals区别

==与equals区别

时间:2023-07-27 11:46:57浏览次数:24  
标签:String 区别 s1 System equals println out

public class ll{
        public static void main(String[] args) {
            String s1 = "abc";
            String s2 = "abc";
            String s3 = new String("abc");
            String s4 = "a" + "b" + "c";
            String s5 = "ab";
            String s6 = s5 + "c";
            String s7="ab"+"c";
            System.out.println(s1 == s2);//true
            System.out.println(s2==s4);//true
            System.out.println(s1.equals(s2));//true
            System.out.println(s1 == s3);//false
            System.out.println(s1.equals(s3));//true
            System.out.println(s1 == s4);//true
            System.out.println(s1.equals(s4));//true
            System.out.println(s1 == s5);//false
            System.out.println(s1.equals(s5));//false
            System.out.println(s1 == s6);//false
            System.out.println(s4 == s7);//true
            System.out.println(s6 == s7);//false
            System.out.println(s1.equals(s6));//true
            }
}
不同点 equels ==
对象类型不同 equals():是超类Object中的方法 ==是操作符
比较对象不同 1,String、Date、File、包装类都重写了Object类的equals方法。如果类中重写了equals方法,equals比较内容是否相等。2,如果类中没有重写equals方法,equals比较地址值是否相等(是否指向同一个地址值)。 1,如果比较的是基本数据类型变量,比较两个变量的值是否相等。(不一定数据类型相同)。2,如果比较的是引用数据类型变量,比较两个对象的地址值是否相同,即两个引用是否指向同一个地址值。
运行速度不同 equals():没有==运行速度快。 ==运行速度比equals快, ==只是比较引用。

标签:String,区别,s1,System,equals,println,out
From: https://www.cnblogs.com/sili-future/p/17584548.html

相关文章

  • for...in 循环和 for...of 循环的区别
    JavaScript中的for...in循环和for...of循环是两种不同的迭代方式,用于遍历数据结构中的元素。它们具有一些区别:for...in循环:用于遍历对象的可枚举属性(包括原型链上的属性)。迭代的是键(属性名),而非值。不保证迭代顺序,因为对象的属性顺序在规范中并未定义。比较适合用于遍......
  • 分布式事务两阶段提交和三阶段提交有什么区别?
    在分布式事务中,通常使用两阶段协议或三阶段协议来保障分布式事务的正常运行,它也是X/Open公司定义的一套分布式事务标准。X/Open公司是由多家国际计算机厂商所组成的联盟组织,它建立之初是为了向UNIX环境提供标准。分布式事务是指在分布式系统中,多个节点之间进行的事务操作......
  • Java面试题 P9:List和Set的区别
    List:有序,按对象进入的顺序保存对象,可重复,允许多个Null元素对象,可以使用Iterator取出所有元素,在逐一遍历,还可以使用get(intindex)下标方式,获取指定下标的元素值Set:无序,不可重复,最多允许有一个Null元素对象,取元素时只能用lterator接口取得所有元素,在逐一遍历各个元素  ......
  • Java面试题 P8:接口和抽象类的区别
    普通回答:1、抽象类可以有抽象方法和实现的方法,可以存在普通成员函数,而接口中只能存在publicinterface方法。2、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是publicstaticfinal类型的。3、抽象类只能继承一个,接口可以实现多个。抽象类和接口的异同点 ......
  • Java面试题 P7:重载和重写的区别
    重载:发生在同一个类中,方法名必须相同,参数类型不同,参数个数不同,参数顺序不同,方法返回值和修饰符可以不同。1publicintadd(inta,Stringb)2publicStringadd(inta,Stringb)3//编译时会报错4重载与返回值无关。重写:发生在父子类中,方法名、参数列表必须相同,返回值范围......
  • TCP和UDP的区别以及各自的应用场景
    TCP和UDP区别:1.连接TCP是面向连接的传输层协议,传输数据前先要建立连接。UDP是不需要连接的,即刻就可以传输数据。2.服务对象TCP是一对一的两点服务,也就是说一条连接只有两个端点。UDP支持一对一,一对多,多对多的交互通信。3.可靠性TCP是要保证可靠交付数据的,数据无差错,不丢失......
  • @Value("${dbpc.path}")和@Value("#{dbpc.path}")区别
    这两个注解都可以用来将值注入到JavaBean的字段中。但是,它们的使用方式略有不同。@Value("${dbpc.path}")是Spring框架中的注解之一,用于从Spring配置文件中获取属性值,并将其注入到JavaBean的字段中。该注解可以用于注入基本类型、字符串、数组、集合、对象等类型的值。@Value(......
  • Scanner对象的用法和区别
    Scanner对象之前我们学校的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。基本语法:Scanners=newScanner(System.in);通过Scanner......
  • C++中delete和delete[]的深层区别
    C++中delete和delete[]的深层区别今天又看到群里有人讨论C++中delete和delete[]的区别,表层原因大家都了解,因为教科书上说得很明白:new和delete需配对使用,new[]和delete[]需配对使用。但若问起在什么情况下针对new[]申请的资源可以使用delete释放而不会有任何问题,能讲清......
  • mysql 中 myisam 与 innodb 的区别?
     1.事务支持>MyISAM:强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。>InnoDB:提供事务支持事务,外部键等高级数据库功能。具有事务(commit)、回滚(rollback)和崩溃修复能力(crashrecoverycapabilities)的事务安全(transaction-safe(......