http://xwood.iteye.com/blog/646288
一般情况下:
引用
equa: 比较“地址+内容”
==:比较地址
String为final类型,其对象按常量处理,创建后就不能再改变。另外,字符串常量在进行“+”运算时则完成拼接,变量是调用append()方法新建一个对象。具体例子如下:
引用
String sa = new String("hello");
String sb = new String("hello");//注意,new时创建新对象,对象存放在堆里,故这里产生了两个对象
sa == sb;//false,sa和sb分别存放了两个字符串对象的引用及地址,肯定不同
String sa = "hello";
String sb = "hello";
sa == sb;//true,sa和sb存放的是字符串常量在栈中的地址,是一样的。"hello"与{'h','e','l','l','o'}是一样的。根据栈数据的存储原则,在第二个"hello"存入栈之前,会自动在栈中寻找是否包含了这个字符串。如果已经有了,则直接引用地址就行,如果还没有再添加。
String sa = "hello" + "world";
String sb = "hello world";
sa == sb;//true,编译器会直接在编译时对字符串常量进行连接,因此sa和sb存储的是一样的,常量池中只有"hello world"
String s1 = "hello";
String s2 = "world";
String sa = s1 + s2;
String sb = "hello world";
sa == sb;//false,java程序运行时,对于字符串连接操作符‘+’,是将其转为StringBuilder()类或StringBuffer()类的append()方法进行连接,相当于new了一个新的字符串对象
注:
File类为包装类型,其equal方法已经重写故以下代码返回true.
引用
File f1=new File("c:\\");
File f2=new File("c:\\");
System.out.println(f1.equals(f2));
分享到:
相关推荐
equal与==区别,从三个方面,进行举例比较。
Java语言是sun公司的开发成果,他的主要特点是可以执行强,与平台的无关性使他的实用性更强。但是Java中的==与equal是有区别的。
本文详细描述了==与equal() 的区别 初学者可以很好很专业的理解其区别
主要介绍了java 中equals和==的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
JAVA 中的 Integer 比较 在 Java 中,我们经常需要比较两个 Integer 对象是否相等,但是在使用 "==" 运算符时,可能会出现一些意外的结果。本文将深入探讨 Java 中的 Integer 比较,了解为什么使用 "==" 运算符可能...
【Java面试题】equals与==的区别
介绍了java中 == 与 equal 的区别,有需要的朋友可以参考一下
主要介绍了浅析java中String类型中“==”与“equal”的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
Java_详解_1、==和Equal用法与比较
对网上问的一些问题的总结,封装成了一个工具类。完成的功能有: 1、判断字符串中是否有中文; 2、得到字符串中有几个中文; 3、判断字符串中有没有连续的几个中文;
书上的一个例子说明了“==”与equals()方法的区别。 以下是例子代码(摘自《Java核心技术》卷一): Employee.java package equals; import java.time.*; import java.util.Objects; /* * 一个{@Employee}代表
用此blog记录我学习的过程,文中若有不恰当的地方,还望友情指出互相学习。 一、== 主要有两种比较形式 基本数据类型(也称原始数据类型):byte,...Java中所有的类都继承自Object类,equals()方法就在Object类中被
2.3 equal和==区别3 JVM内存结构Java对象实例化过程中,主要使用到虚拟机栈、Java堆和方法区 3.1 JVM基本结构类加载器classLoad
import java.util.ArrayList; public class Page { //当前跳转的页面情况 private String pagetype; private PaginationBean pagination; private ArrayList result; //构造函数实例化接收一个pagetype...
1、java中==和equals和hashCode的区别 2、int与integer的区别 3、String、StringBuffer、StringBuilder区别 4、什么是内部类?内部类的作用 5、进程和线程的区别 6、final,finally,finalize的区别 7、...
JButton equal=new JButton("="); JButton point=new JButton("."); JButton plus=new JButton("+"); JButton minus=new JButton("-"); JButton multi=new JButton("×"); JButton division=new JButton("÷")...
Struts Logic标签库中包含的标签列表 Tag name Description empty 如果标签parameter,propertie等属性所指定的变量值为null或空字符串,则处理标签包含的内容 equal 如果标签parameter,propertie等属性所指定的...
2、程序流程图 详细设计 import java.awt.BorderLayout; //导入AWT页面设置类 import java.awt.Button; //导入AWT按钮类 import java.awt.Frame; import java.awt.GridLayout; import java.awt.Panel; import java....
标识符是JAVA中的一种符号,用于命名变量、方法、类等。标识符由字母、下划线、美元符、数字组成,但必须以字母、下划线、美元符开头,不能以数字开头。 JAVA中的常量可以分为整型常量、实型常量、字符常量、逻辑...
本次实验掌握了数组的声明、分配空间及初始化的方法,理解了二维及多维数组,掌握了String类、StringBuffer类的特点及常用方法的使用,掌握了String类和StringBuffer类的区别,掌握了equal方法与==的区别等。