大侠的总结:
http://hi.baidu.com/kabian/blog/item/5c55863c9f77883670cf6cab.html
自己的总结
/*
equals 和 == 的区别
equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等。也可以理解是比较字符串是否相等。
==用于比较引用(就是比较的内存地址的值是否相等)和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
*/
public class TSt{
public static void main(String[] args){
String s1=new String("jack");//开辟了2个空间,因为"jack"字符串开辟一个,new又开辟一个空间(这里的值是引用"jack"开辟空间里面的值),由new开辟的空间返回
String s2=new String("jack");//同理2个
String s3=s1;
String s4="jack";//开辟了一个空间
String s5="jack";//同理一个
//true
System.out.println(s1.equals(s2));//为true,因为equals比较的是对象的内容
//false
System.out.println(s1==s2); //为false,因为==比较的是在堆里面的位置,因为开辟了4个空间,所以为false。
//true
System.out.println(s1==s3);//为true,因为s1开辟的空间也把线引向了s3,所以用的都是s1开辟的空间,结果为true。
//true
System.out.println(s1.equals(s3)); //只要s1==s3相等,那么s1.equals(s3)必然相等。
//true
System.out.println(s4.equals(s5));//因为String也是个类,所以s4,s5都开辟了新的空间(这样理解是不对的,这里用到了java的一种设计模式,叫做共享模式,
只要s4开辟了空间,s5就会享用s4开辟的空间),既然都用一个空间了,所以答案为true。
//true
System.out.println(s4==s5);//解释同上。
//true
System.out.println(s1.equals(s4));//s1与s4的内容都是jack,所以答案为true。
//false
System.out.println(s1==s4);//这里s1开辟的两个空间是不会分给一个给s4共享的,所以答案为false。
}
}
*************************************************************************************下面是String类的一些特性
1、String类中的内容一旦声明则不可改变例子如下:
public clss Test{
public static void main(String[] args){
String s1="jack";
fun(s1)
System.out.println(s1); //答案为jack
}
public static void fun(String s2){
s2="lucy";
}
}
分享到:
相关推荐
### set接口中hashCode和equals方法详解 #### 一、引言 在Java编程语言中,`Set`接口作为集合框架的重要组成部分,在实现无重复元素的数据结构方面扮演着关键角色。为了确保元素的唯一性,`Set`接口依赖于对象的`...
2、== 和 equals 的区别是什么? 1.对于基本类型,==比较的是值; 2.对于引用类型,==比较的是地址; 3.equals不能用于基本类型的比较; 4.如果没有重写equals,equals就相当于==; 5.如果重写了equals方法,equals...
2. == 和 equals 的区别: 在Java中,"=="用于比较基本类型变量的值,而对于对象,它比较的是两个引用是否指向同一块内存。equals方法默认行为与"=="相同,但很多类(如String和Integer)重写了equals,使其比较对象...
- **equals和==的区别**:`==`比较值,`equals`比较内容,基本类型用`==`,对象用`equals`。 3. **封装类**:Java为八种基本数据类型提供了对应的封装类,如Integer、Double等,便于进行面向对象的操作。 4. **位...
2. **== 和 equals 的区别** - `==` 运算符: - 对于基本类型,它比较的是数值是否相等。 - 对于引用类型,它比较的是两个对象在内存中的引用地址是否相同,即它们是否指向同一个实例。 - `equals()` 方法: - ...
2. **== 和 equals 的区别** 在 Java 中,`==` 用于比较基本类型的值或引用类型的地址。对于引用类型,如果两个引用指向同一对象,`==` 返回 true,否则返回 false。而 `equals` 方法默认行为与 `==` 相同,但一些...
JAVA学习笔记整理全面涵盖了从基础语法到高级技术的多个领域,包括数据库管理、Web服务器、缓存技术、框架、容器、网络、虚拟机、操作系统、数据结构和操作系统等多个方面。以下将详细介绍其中的关键知识点。 一、...
此外,还要注意`equals()`和`compareTo()`的区别。`compareTo()`是`Comparable`接口的一部分,用于排序,它返回一个整数,表示当前对象与另一个对象的大小关系。虽然两者都涉及对象的比较,但目的和使用场景不同。 ...
接下来,我们讨论`==`与`equals()`在Java中的用法和区别。`==`操作符在处理基本类型(如int、char等)时,直接比较它们的值是否相等。而对于引用类型(如对象),`==`则比较的是两个引用是否指向内存中的同一块区域...
综上所述,《.Net应用系统设计指导书》通过详实的规定和建议,为.NET开发人员提供了一套全面的编码规范和设计模式,有助于构建高效、稳定和易于维护的应用系统。遵循这些原则,不仅能够提升代码质量,还能增强团队...
【C#面试宝典】是针对.NET开发技术面试的一份全面总结,涵盖了众多核心知识点,旨在帮助面试者准备和复习C#的相关知识。以下是对这些知识点的详细解析: 1. **CLR、CTS、CLS**:CLR(Common Language Runtime)是...
对于面试指南,了解String、StringBuilder和StringBuffer的差异,理解对象相等和引用相等的区别,以及equals和hashCode的关系至关重要。Java序列化中,可以通过transient关键字排除字段。 总之,Java高级资深核心...
JavaSE是Java编程的基础部分,面试中经常涉及的Java基础知识包括变量存储位置、equals和hashcode的重写、Map的分类及其特点、Object的hashCode方法、以及==运算符的使用等。以下是对这些知识点的详细解释: 1. **...
在Java中,字符串的比较主要通过`equals()`方法和`equalsIgnoreCase()`方法来实现。 1. `equals()`方法:这是Java中用于比较两个对象是否相等的标准方法。对于字符串,`str1.equals(str2)`会比较两个字符串的内容...
2. **== 和 equals 的区别** - `==` 在Java中用于比较基本类型的变量时,比较的是它们的值。而对于对象,`==` 比较的是两个对象在内存中的引用是否指向同一个实例。 - `equals` 是Object类的一个方法,初始行为与`...
2. **`==`与`equals()`的区别**: - `==`对于基本类型比较的是数值是否相等,而对于对象则是比较引用是否指向同一内存地址。 - `equals()`方法默认行为与`==`相同,但许多类(如String、Integer)会重写`equals()`...
8. **equals与==**:`equals`比较内容,`==`比较引用。 ### 集合框架 9. **String、StringBuffer和StringBuilder**:`String`不可变,后两者可变,多线程环境下推荐使用`synchronized`的`StringBuffer`。 10. **...