string 构造方法为对象赋值,equals方法比较两个字符串是否相等

package String;
/*
 * 写了一个简单的equals 方法
 * 总结:用string的构造方法来赋值,构造方法:public string (string xxx)
 *     比较两个字符串是否相等,用方法  public boolean equals(string str)
 */
public class StringDemo {
public static void main(String[] args) {
    String www = "hello"; //直接为www 初始化
    String yyy = new String("hello");// 这里是用到string的构造方法来赋值的,构造方法:public string (string xxx)
    String uuu = yyy;
    System.out.println(www.equals(yyy));
    System.out.println(yyy.equals(uuu));
}
}
时间: 2024-10-13 01:04:46

string 构造方法为对象赋值,equals方法比较两个字符串是否相等的相关文章

浅谈java对象的equals方法

作为一个被问的很多的一个面试题:java中==和equals有什么区别? 网上普遍的回答都是:==比较的是内存地址,equals比较的是值. 其实这种回答是很不标准的,稍微标准一点的回答应该JDK自带的一些类对equals的实现各不同,例如 Object对象的equals的定义是这样的: public boolean equals(Object obj) { return (this == obj); } 所以在Object中==和equals是没有任何区别的. 但在String中,重写的equ

equals方法被调用时字符串和对象的顺序

之前改的bug,一开始我先判断sortKey不为空,然后再去判断sortKey的值,见下图, 代码push后,同事审核后,叫我将sortKey和值得顺序调换一下,说这样就不用再判断为空.这是改之后的代码,见下图, 问了几个人,说是避免空指针异常,我说我前面已经对sortKey做了一个不为空判定,有人回答说虽然没有错,但是多判断了一次,而且从代码规范上看显得多余. 问题来了,equals方法被调用时,谁在前谁在后,这里面有什么讲究?经过查阅相关资料,整理了一些知识点. equals方法在Objec

两个对象整体内容的比较-重写对象的equals方法

比较两个对象整体的内容,要重写对象的equals方法 重写Person的equals方法 @Override public boolean equals(Object obj) { if(this == obj){//引用的地址完全一样 return true; } if(obj == null){//obj是空的 return false; } if(getClass()!=obj.getClass()){//两者类型不一样 return false; } Person p = (Person

在重写了对象的equals方法后,还需要重写hashCode方法吗?

首先说建议的情况:  比如你的对象想放到Set集合或者是想作为Map的key时(非散列的Set和Map,例如TreeSet,TreeMap等),那么你必须重写equals()方法,这样才能保证唯一性.当然,在这种情况下,你不想重写hashCode()方法,也没有错.但是,对于良好的编程风格而言,你应该在重写equals()方法的同时,也重写hashCode()方法. 然后再说说必须重写hashCode()的情况:     如果你的对象想放进散列存储的集合中(比如:HashSet,LinkedHa

List中的Contains方法内部其实是用对象的equals方法做比较,所以如果比较两个类就重写类的equals方法即可

原文地址:https://www.cnblogs.com/hujiapeng/p/8436740.html

JAVA学习(二) String使用equals方法和==分别比较的是什么?(转)

String使用的equals方法和==的区别 equals方法和==的区别 首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用.这里指的作为一个基本类型来使用只是指使用方法上的,比如String s = "Hello",它的使用方法如同基本类型int一样,比如int i = 1;,而作为一个对象来使用,则是指通过new关键字来创建一个新对象,比如String s = new String("Hello").但是它的内部动作其实还是创建

==运算符和equals()方法的区别

Java语言程序中判断两个变量是否相等有两种方式:一是运用==运算符,二是运用equals方法. 1. ==运算符 对于==运算符来说,如果两个变量是基本类型的,并且是数值类型,则只要它们的值相等,就会返回true:然而如果是两个引用类型的变量,则分为两种情况:1)它们指向同一个对象,结果返回true:2)它们指向不同的对象,即使对象内容相同,结果还是返回false:下面程序示范了使用==运算符比较两个变量是否相等的结果: public class Test { public static vo

String类中的equals()方法

在Java中,每一个对象都有一个地址空间,在这空间保存着这个对象的值. equals 比较的是值,==比较的地址以及值. 01: public class StringExample02: {03: public static void main (String args[])04:   {05: String s0 = "Programming";06: String s1 = new String ("Programming");07: String s2 =

java重写equals方法(重点讲解)

为什么equals()方法要重写? 判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象.这样我们往往需要重写equals()方法. 我们向一个没有重复对象的集合中添加元素时,集合中存放的往往是对象,我们需要先判断集合中是否存在已知对象,这样就必须重写equals方法. 怎样重写equals()方法? 重写equals方法的要求: 1.自反性:对于任何非空引用x,x.equals(x)应该返回tru