谈谈==和equals
==
- 先看Java
/**
* Author:Mr.X
* Date:2017/10/8 23:17
* Description:
*
* @==判断两个内存地址是否相同
* @基础类型有(char,byte,short,short,int,long,float,double,boolean)
* @基础类型包装类有(Char,Byte,Short...)
*
* @值相同的情况下:
* @结论1:基础类型==基础类型都为true----------------------------------->值比较
* @结论2:基础类型==基础类型包装类都为true------------------------------>值比较,一般都不会同时写(int,Integer)两种类型
* @结论3:基础类型包装类==基础类型包装类
* @Byte,Short,Integer,Long(-127~128之间true,超过这个范围为false)----->引用比较,但有缓存机制
* @Float,Double等都为false------------------------------------------>引用比较
*/
public class Test {
public static void main(String[] args) {
int a = 1;
int b = 1;
System.out.println(a == b); //true
float c = 1;
System.out.println(a == c); //true
double d = 1;
System.out.println(a == d); //true
Integer e = 1;
System.out.println(a == e); //true
/**
* Byte,Short,Integer,Long缓存范围(-127~128)
* System.out.println(Byte.MAX_VALUE);
* System.out.println(Byte.MIN_VALUE);
*/
Integer f = 10;
Integer g = 10;
System.out.println(f == g); //true
Integer h = 300;
Integer i = 300;
System.out.println(h == i); //false
Float j = 10f;
Float k = 10f;
System.out.println(j == k); //false
}
}
- 对比看看js
<script type="text/javascript">
var a = 10;
var b = "10";
console.log(a == b); //true
console.log(a === b); //false ===表示(a==b && typeof(a)==typeof(b))
console.log(typeof(a)); //number
console.log(typeof(b)); //string
</script>
equals
Integer a = 10;
Integer b = 10;
System.out.println(a.equals(b)); //true
Float c = 10f;
System.out.println(a.equals(c)); //false
true
false
equals在同一数据类型时,值相等则相等,否则为false,上例中a和c数据类型不同,所以为false
if (!a.equals("") && a != null) 和 if (a != null && !a.equals(""))的选择
// 这样写才是对的,自己思考为什么
if (a != null && !a.equals("")) {
}
谈谈==和equals的更多相关文章
- [转]谈谈Java中"=="与"equals()"
equals是Object超类中的一个方法,这个方法的实现就是通过==号实现的,==号比较的是两个对象的地址是否相同,在代码中体现出来就是比较两个对象引用中保存的地址是否相同,==能够判断的只是两个对 ...
- 谈谈hashcode和equals的用法
HASH: Hash是散列的意思,就是把任意长度的输入,通过散列算法变换成固定长度的输出,该输出就是散列值.关于散列值,有以下几个关键结论: 1.如果散列表中存在和散列原始输入K相等的记录,那么K必定 ...
- 谈谈HashSet的存储原理及为什么重写equals必须重写hashcode方法
HashSet的存储原理: 1.将要传入的数据根据系统的hash算法得到一个hash值: 2.根据hash值可以得出该数据在hash表中的位置: 3.判断该位置上是否有值,没有值则把数据插入进来:如果 ...
- 谈谈javaSE中的==和equals的联系与区别
前言 ==和equals是我们面试中经常会碰到的问题.那么它们之间有什么联系和区别呢?今天我们就来聊聊吧! 问题 这里先抛出一些比较典型笔试问题: int x = 10; int y = 10; St ...
- java中hashcode()和equals()的详解
今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享(zhaoxudong 2008.10.23晚21.36). 1. 首先equals()和hashc ...
- Spring系列之谈谈对Spring IOC的理解
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IOC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...
- 谈谈Android 6.0运行时权限理解
前言 谷歌在2015年8月份时候,发布了Android 6.0版本,代号叫做“棉花糖”(Marshmallow ),其中的很大的一部分变化,是在用户权限授权上,或许是感觉之前默认授权的不合理,现在6. ...
- 【ASP.net】Equals 和 == 的区别
在比较Equals 和 ==的区别前.我们先来了解下相关的知识 C#数据类型 1.值类型 值类型有: 值类型包括:简单类型.结构类型.枚举类型:引用类型包括:Object 类型.类类型.接口.代表元. ...
- 谈谈Java的集合组件
让我们一起谈谈Java的集合组件 我们在使用Java的时候,都会遇到并使用到Java的集合.在这里通过自己的理解和网上的资源对Java的集合方面的使用做一个简单的讲解和总结. Java主要分为3个集合 ...
随机推荐
- 跟我一起用node-express搭建一个小项目(node连接mongodb)[三]
数据库虽然安装并启动成功了,但我们需要连接数据库后才能使用数据库. 怎么才能在 Node.js 中使用 MongoDB 呢? 我们使用官方提供的 node-mongodb-native 驱动模块,打开 ...
- eclipse导出svn源码,如何转化为项目
1.先导出 2.点击项目右键,选“属性” 3.选择project facets 4.添加对应的支持 5.可进行进一步配置,设置name,然后点击确定等待完成
- Java的一些基本术语
1. 反射 获取类本身,就叫“反射”,有以下3种方式: // 通过“实例”获取类 String str = "hello"; Class cls1 = str.getClass() ...
- Map_占位符(嗨没想好怎么起名字)
Map 是很好的集合,为我们带来了在其他语言(比如 Perl)中经常可见的好用的键/值对集合.JDK 以 HashMap 的形式为我们提供了方便的 Map 实现,它在内部使用哈希表实现了对键的对应值的 ...
- Openldap命令详解
Openldap 客户端常用管理命令 1.ldapadd -x: 简答认证方式 -W: 不需要在命令上写密码 ldapapp -x -D "cn=Manager,dc=suixingpay, ...
- Hadoop记录-NameNode优化
1.NameNode启动过程 加载FSImage: 回放EditLog: 执行CheckPoint(非必须步骤,结合实际情况和参数确定,后续详述): 收集所有DataNode的注册和数据块汇报. 采用 ...
- Mysql:索引实战
MySQL主要提供2种方式的索引:B-Tree索引,Hash索引 B树索引具有范围查找和前缀查找的能力,对于有N节点的B树,检索一条记录的复杂度为O(LogN).相当于二分查找. 哈希索引只能做等于查 ...
- 13个.Net开源的网络爬虫
请点击此处输入图片描述 1:.Net开源的跨平台爬虫框架 DotnetSpider Star:430 DotnetSpider这是国人开源的一个跨平台.高性能.轻量级的爬虫软件,采用 C# 开发.目前 ...
- 【1】Java中double转BigDecimal的注意事项
项目遇到该问题 先上结论:不要直接用double变量作为构造BigDecimal的参数. 线上有这么一段Java代码逻辑: 1,接口传来一个JSON串,里面有个数字:57.3. 2,解析JSON并把这 ...
- Scrapy基础02
一.start_requests def start_requests(self): cls = self.__class__ if method_is_overridden(cls, Spider, ...