java的equals和==的比较示例
package com.amos;
/**
* @ClassName: EqualTest
* @Description:Java中的equal和==的比较
* @author: amosli
*/
public class EqualTest {
public static void main(String[] args) {
int a = 1;
float b = 1.0f;
System.out.println(a == b);// true
String c = new String("hi_amos");
String d = new String("hi_amos");
System.out.println(c == d);// false
System.out.println(c.equals(d));// true
}
}
Java中判断两个变量是否相等主要有两种判方式:一种是利用==运算符,另一种是利用equals方法来判断两者是否相同.
1).当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型,不要求数据类型严格相同,只要两个变量的值相等,那么将返回true.
2).如果对于两个引用类型变量,它们必须指向一个对象时,==判断才会返回true.==不可用于比较类型上没有父子关系的两个对象.
如上可以解释同样一new String时,==判断两者是否相同返回的是false,而equals返回的是true.
equals方法针对的String类,查看其源码,可以发现其实equals只能算是==的一种特例.如下面源码所示:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
equals方法实际上一开始就调用了==判别式,然后再判断其进一步值是否正确
相关推荐
-
java中equals和等号(==)的区别浅谈
java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值. 2.复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false.JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个eq
-
java equals和=,==的区别详细介绍
Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值. 2.复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false. JAVA当中所有的类都是继承于Object这个基类的,在Ob
-
java String 类的一些理解 关于==、equals、null
1.String 的==与equal() 在对字符串的相等判断,==判断的是地址是否相同,equal()判断的是字符值是否相同.大多数时候==跟equal()的结果都是相同的.这是因为String对象是不变模式的,如果你不是明确地new一个String对象,Java对于String对象的保存默认的是会把新生成的String 对象放到一个缓冲区,然后每次判断缓冲区中是否已经有了这个对象,如果有了,那么后建立的同样字符值的String对象也会指向最初建立是该字符值对象的地址.也就是说字符值相同的时候
-
java中"==" 与equals方法的使用
复制代码 代码如下: public class equalsDemo { public static void main(String[] args){ /*使用==来判断两个变量是否相等时,如果两个变量时基本数据类型的 变量时,且都是数值类型是,则只要两个变量的值相等,使用==判断就返回true*/ int i=65; float f=65.0f; System.out.println(i==f);//true char
-
Java中==与equals的区别小结
public class Compare { /** * == 与 equals()区别 */ public static void main(String[] args) { String s1 = new String("Hello,World!"); //创建两个String型对象引用; String s2 = new String("Hello,World!"); String s3 = s1; //将s1对象引用赋予s3 System.out.printl
-
基于Java字符串 "==" 与 "equals" 的深入理解
虽然关于Java字符串"=="和"equals"的问题是Java学习中的最基础的一个问题,但是仍然有不少刚刚学习Java的同学搞不清楚里面的原理,最近和朋友讨论到这个问题,所以写篇文章给大家分享一下我自己的理解.首先让我们看一个例子: 复制代码 代码如下: public class TestStringEquals { public static void main(String[] args) { String a = "test";
-
Java中==运算符与equals方法的区别及intern方法详解
Java中==运算符与equals方法的区别及intern方法详解 1. ==运算符与equals()方法 2. hashCode()方法的应用 3. intern()方法 /* Come from xixifeng.com Author: 习习风(StellAah) */ public class AboutString2 { public static void main(String[]arsgs) { String myName="xixifeng.com"; String
-
java的equals和==的比较示例
先看例子: 复制代码 代码如下: package com.amos;/** * @ClassName: EqualTest * @Description:Java中的equal和==的比较 * @author: amosli */public class EqualTest { public static void main(String[] args) { int a = 1; float b = 1.0f; System.out.println
-
Java多线程编程实现socket通信示例代码
流传于网络上有关Java多线程通信的编程实例有很多,这一篇还算比较不错,代码可用.下面看看具体内容. TCP是Tranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议.通过TCP协议传输,得到的是一个顺序的无差错的数据流.发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以
-
详解 Java 中 equals 和 == 的区别
详解 Java 中 equals 和 == 的区别 1 前言 在 Java 语言中,equals 和 == 都是用来检测两个字符串是否相等,返回值也都是布尔型(boolean),但是两者在内部比较的处理中却不尽相同,因此在需要检测两个字符串是否相等的时候,我们一定要特别的注意,选择适当的检测方式,防止造成不必要的 bug.从表面上来看,这种 bug 很像随机产生的间歇性错误. 2 区别 在需要检测两个字符串是否相等的时候,我们可以使用 equals 方法.对于表达式: s.equals(t) 如
-
Java实现Swing组件定制Button示例
本文实例讲述了Java实现Swing组件定制Button.分享给大家供大家参考,具体如下: 先来看看运行效果图: 具体代码如下: package themedemo; import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.RenderingHin
-
Java中filter用法完整代码示例
本文研究的主要是Java中filter过滤器的相关用法,具体实现代码如下. filter过滤器主要使用于前台向后台传递数据是的过滤操作.程度很简单就不说明了,直接给几个已经写好的代码: 一.使浏览器不缓存页面的过滤器 import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 用于的使 Browser 不缓存页面的过滤器 */ public cla
-
java poi导出图片到excel示例代码
本文实例为大家分享了java使用poi导出图片到Excel的具体代码,供大家参考,具体内容如下 代码实现 Controller /** * 导出志愿者/人才数据 * @param talent_type * @return */ @RequestMapping("/exportData") public void exportData(Integer talent_type, HttpServletResponse response) { String fileId = UUID.ra
-
Java使用Collections.sort()排序的示例详解
Java中Collections.sort()排序详解,通过实例代码给大家讲解,具体代码如下所示: public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("beijing"); list.add("shanghai"); list.add("hangzhou"); Collections.
-
Java 实现模拟用户登录的示例代码
创建一个用户类类型的集合,手动输入用户库 主要是判定输入的用户名和密码是否与库中的匹配 做好区别是用户名输入错误还是密码输入错误的提示. 定义用户类 public class User{ String username; String keyword; public User(String username, String keyword) { this.username = username; this.keyword = keyword; } } 主程序 import java.util.A
-
java 实现DES 加密解密的示例
package com.cn.peitest; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.IvParameterSpec; /** * @功能说明: <BR> * @创建日期:2016年9月21日<BR> *
-
3分钟纯 Java 注解搭个管理系统的示例代码
最近接触到个新项目,发现它用了一个比较有意思的框架,可以说实现了我刚入行时候的梦想,所以这里马不停蹄的和大家分享下. 在我刚开始工作接触的项目都还没做前后端分离,经常需要后端来维护页面,有时候觉得自己好像天生不适合干前端,你要是让我研究研究后端的技术,看个中间件源码啊,分析分析什么框架底层原理啊,这都问题不大,偶尔搞一下JS也可以.你要是让我写个css样式,那简直要命了,一点也提不起兴趣,不知道有没有跟我一样的. 今天要介绍的框架直接不用写页面了,话不多说,下边咱们直奔主题 Erupt一个通用后
随机推荐
- 一位高手整理的IIS FAQ
- react-native-tab-navigator组件的基本使用示例代码
- javascript实现图片轮播效果
- php采用curl实现伪造IP来源的方法
- Golang学习笔记(三):控制流
- C++构造函数初始化顺序详解
- android layout 按比例布局的代码
- Android EditText禁止输入空格和特殊字符
- JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
- 如何以及何时使用sIFR
- 超简单JS二级、多级联动的简单实例
- 用vbs脚本来关闭 HTML 页面的代码
- Google开源的Python格式化工具YAPF的安装和使用教程
- 详解有关easyUI的拖动操作中droppable,draggable用法例子
- 多次注册事件会导致一个事件被触发多次的解决方法
- 深入浅析JavaScript系列(13):This? Yes,this!
- Javascript 按位与赋值运算符 (&=)使用介绍
- 在bootstrap中实现轮播图实例代码
- javascript学习网址备忘
- php中一个完整表单处理实现代码