==与equal的比较

package com.test;

public class IndexofTest {
 public static void main(String[] args) 
 {
  //基本类型比较
  int a1=1;
  int a2=1;
  System.out.println("String型的\t'=='是\t"+(a1==a2)+"基本类型不能用’equal'");
  //两个字符串比较
  String s1="hello";
  String s2="hello";
  System.out.println("String型的\t'=='是\t"+(s1==s2)+"  'equal'是"+s1.equals(s2));
  //这个比较特殊,当Integer在-128到127之间的时候,内存中开辟了一块位置存储数据,
  Integer t1=345;
  Integer t2=345;
  System.out.println("Integer型的\t'=='是\t"+(t1==t2)+"  'equal'是"+t1.equals(t2));
  //比较对象
  test o1=new test("zhangsan",23);
  test o2=new test("zhangsan",23);
  System.out.println("Object的 \t'=='是\t"+(o1==o2)+"  'equal'是"+o1.equals(o2));
  
  
}


}
//测试用的类
class test
{
	private String name;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "test [age=" + age + ", name=" + name + "]";
	}
	public test(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	
}

 

结果是:

String型的 '=='是 true基本类型不能用’equal'
String型的 '=='是 true  'equal'是true
Integer型的 '=='是 false  'equal'是true
Object的  '=='是 false  'equal'是false

在不同编程语言中,`==` `equal`(通常在 Java 等语言里用 `equals` 方法)有着不同的含义用途。 ### Java 语言 在 Java 中,`==` `equals()` 方法有明显区别。`==` 用于比较基本数据类型的值或引用的相等性。对于基本数据类型,如 `int`、`double` 等,`==` 比较的是它们实际存储的值;而对于引用类型,`==` 比较的是两个引用是否指向同一个对象实例。`equals()` 方法定义在 `Object` 类里,默认的 `equals` 方法实现 `==` 操作一样,但通常会根据具体的业务逻辑来重写该方法,用于检查两个对象的内容是否相等。例如,`String` 类就重写了 `equals()` 方法,用来比较字符串的内容。所以在实际编程中,处理对象内容比较时应使用 `equals()` 方法,比较基本数据类型的值或引用的相等性时使用 `==` [^1][^2]。 以下是 Java 示例代码: ```java public class ComparisonExample { public static void main(String[] args) { // 基本数据类型比较 int a = 5; int b = 5; System.out.println(a == b); // true // 引用类型比较 String str1 = new String("hello"); String str2 = new String("hello"); System.out.println(str1 == str2); // false,比较引用 System.out.println(str1.equals(str2)); // true,比较内容 } } ``` ### 其他语言 在其他语言中,`==` 类似 `equal` 概念的使用也各有不同。例如在 Python 中,`==` 用于比较两个对象的值是否相等,而对于自定义类,如果要实现自定义的相等比较逻辑,需要重写 `__eq__` 方法。 ```python class MyClass: def __init__(self, value): self.value = value def __eq__(self, other): if isinstance(other, MyClass): return self.value == other.value return False obj1 = MyClass(10) obj2 = MyClass(10) print(obj1 == obj2) # 输出 True,调用重写的 __eq__ 方法 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值