`
Roader123
  • 浏览: 92714 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java中equal()与==的区别

阅读更多

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与==区别

    equal与==区别,从三个方面,进行举例比较。

    3 Java中关于==和equal的区别 以及equals()方法重写

    Java语言是sun公司的开发成果,他的主要特点是可以执行强,与平台的无关性使他的实用性更强。但是Java中的==与equal是有区别的。

    java中==与equal()区别

    本文详细描述了==与equal() 的区别 初学者可以很好很专业的理解其区别

    浅谈java 中equals和==的区别

    主要介绍了java 中equals和==的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    JAVA Integer == equal 比较 doc 比较大小 是否相等

    JAVA 中的 Integer 比较 在 Java 中,我们经常需要比较两个 Integer 对象是否相等,但是在使用 "==" 运算符时,可能会出现一些意外的结果。本文将深入探讨 Java 中的 Integer 比较,了解为什么使用 "==" 运算符可能...

    【Java面试题】equals与==的区别

    【Java面试题】equals与==的区别

    java中 == 与 equal 的区别讲解

    介绍了java中 == 与 equal 的区别,有需要的朋友可以参考一下

    浅析java中String类型中“==”与“equal”的区别

    主要介绍了浅析java中String类型中“==”与“equal”的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    Java_详解_1、==和Equal

    Java_详解_1、==和Equal用法与比较

    java 字符串中文判断

    对网上问的一些问题的总结,封装成了一个工具类。完成的功能有: 1、判断字符串中是否有中文; 2、得到字符串中有几个中文; 3、判断字符串中有没有连续的几个中文;

    关于Java中的“==”与equals()

    书上的一个例子说明了“==”与equals()方法的区别。 以下是例子代码(摘自《Java核心技术》卷一): Employee.java package equals; import java.time.*; import java.util.Objects; /* * 一个{@Employee}代表

    Java中==与equals的区别

    用此blog记录我学习的过程,文中若有不恰当的地方,还望友情指出互相学习。 一、== 主要有两种比较形式 基本数据类型(也称原始数据类型):byte,...Java中所有的类都继承自Object类,equals()方法就在Object类中被

    面试-Java基本知识点1

    2.3 equal和==区别3 JVM内存结构Java对象实例化过程中,主要使用到虚拟机栈、Java堆和方法区 3.1 JVM基本结构类加载器classLoad

    Java Oracle分页处理

    import java.util.ArrayList; public class Page { //当前跳转的页面情况 private String pagetype; private PaginationBean pagination; private ArrayList result; //构造函数实例化接收一个pagetype...

    Java面试题.docx

    1、java中==和equals和hashCode的区别 2、int与integer的区别 3、String、StringBuffer、StringBuilder区别 4、什么是内部类?内部类的作用 5、进程和线程的区别 6、final,finally,finalize的区别 7、...

    calculator.java

    JButton equal=new JButton("="); JButton point=new JButton("."); JButton plus=new JButton("+"); JButton minus=new JButton("-"); JButton multi=new JButton("×"); JButton division=new JButton("÷")...

    Java+structs快速学习指南

    Struts Logic标签库中包含的标签列表 Tag name Description empty 如果标签parameter,propertie等属性所指定的变量值为null或空字符串,则处理标签包含的内容 equal 如果标签parameter,propertie等属性所指定的...

    基于JAVA语言的计算器图形界面设计.doc

    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笔记(全).docx

    标识符是JAVA中的一种符号,用于命名变量、方法、类等。标识符由字母、下划线、美元符、数字组成,但必须以字母、下划线、美元符开头,不能以数字开头。 JAVA中的常量可以分为整型常量、实型常量、字符常量、逻辑...

    实验五:Java数组与字符串

    本次实验掌握了数组的声明、分配空间及初始化的方法,理解了二维及多维数组,掌握了String类、StringBuffer类的特点及常用方法的使用,掌握了String类和StringBuffer类的区别,掌握了equal方法与==的区别等。

Global site tag (gtag.js) - Google Analytics