一开始遇见==和equals我也是分不清,后来看了很多博客,收益匪浅,

担心以后给忘了,所以写下这个,以后复习可以用。

(有哪里写得不对的,希望可以留言帮忙改进,大家一起共同进步)

一、Java数据类型一共分为两大类:基本数据类型、引用数据类型:

  1.基本数据类型:

    整数型:

      整型:byte、short、int、long

     浮点型:float、double

    字符型:char

    布尔型:boolean

  2.引用数据类型:

    数组、类、接口

二、基本数据类型的比较

   基本类型的比较只能用==比较,没办法用equals比较,没有该方法,包装类才有

  

三、基本类型和包装类型的比较

  装箱:int-->Integer,拆箱:Integer-->int

  1.基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较

  2.关于equals的比较,我们先看下它的源码

  这个是Object的equals源码,很明显是比较两个的地址是否一样

  

  这个是Integer的equals,说明他重写了object的源码,他是先比较类型是否一样,

  如果类型不一样直接返回false,如果类型一样,他会先进行拆箱后再比较。

  

  int和Integer的比较实例

    

四、String类型的比较

   1.String关于==的比较是看他的地址是不是一样,但是String他比较特殊,他有个字符串常量池,直接定义字符串(不是new的情况)

   他会先到字符串常量池看之前有没有,有就直接指向之前的。没有就创建(指的是new)。

    2.equals:因为String继承了Object的equals并重写了equals.看下面的源码,我们可以看出来,他是先判断是不是同一对象,如果是直接返回true,

     如果不是他就比较内容是否一致。

    

    String比较实例

  

五、引用类型的比较

  引用类型的比较最直接无论是==还是equals都是比较地址

  这是equals源码

  

  比较案例

  

    

==和equals详解+例子的更多相关文章

  1. hashCode与equals详解

    在工作中写业务类通常都会重写hashCode与equals方法,而这两个方法的区别与用途也常常被问道.平时也只是大概知道这二者的用途,今天闲下来,查阅资料加上自己的理 解,总结记录下. hashCod ...

  2. java中hashCode()与equals()详解

    首先之所以会将hashCode()与equals()放到一起是因为它们具备一个相同的作用:用来比较某个东西.其中hashCode()主要是用在hash表中提高 查找效率,而equals()则相对而言使 ...

  3. hashCode、equals详解

    hash和hash表是什么? hash是一个函数,该函数中的实现就是一种算法,就是通过一系列的算法来得到一个hash值,这个时候,我们就需要知道另一个东西,hash表,通过hash算法得到的hash值 ...

  4. Java中 == 和 equals()详解

    java中的数据类型分为两种: 一 .基本数据类型: byte.short.int.long.float.double.char.boolean 比较它们需要用  ==  ,比较的是它们的值是否相等 ...

  5. 深入java面向对象一:==和equals详解

    本文从多篇博客笔记融合而来,系转载,非原创,参考: 1.  http://www.cnblogs.com/e241138/archive/2012/09/16/2687981.html 2.  htt ...

  6. ASIHTTPRequest 详解 例子

    目录 目录 发起一个同步请求 创建一个异步请求 队列请求 请求队列上下文 ASINetworkQueues, 它的delegate提供更为丰富的功能 取消异步请求 安全的内存回收建议 向服务器端上传数 ...

  7. 接口详解例子代码(附Java1.8的接口新特性)

    接口,与抽象类类似但是区别也很大,他们都是标签,用来提醒父类一定要实现的类里创建抽象方法.而接口类可以implements 多个接口,抽象类则只能父类只能继承一个抽象类,与抽象不同的是它不是继承组合关 ...

  8. GBDT详解例子

    https://blog.csdn.net/zpalyq110/article/details/79527653

  9. Ngnix服务器详解(Windows版本)(非原创)

    文章大纲 一.Ngnix简介二.Ngnix安装三.Ngnix之静态资源访问四.Ngnix正向代理与反向代理五.Ngnix之虚拟主机配置六.Ngnix之负载均衡七.Ngnix之访问控制八.Ngnix日志 ...

随机推荐

  1. 总结oninput、onchange与onpropertychange事件的用法和区别

    前端页面开发的很多情况下都需要实时监听文本框输入,比如腾讯微博编写140字的微博时输入框hu9i动态显示还可以输入的字数.过去一般都使用onchange/onkeyup/onkeypress/onke ...

  2. TensorFlow 基础知识

    参考资料: 深度学习笔记目录 向机器智能的TensorFlow实践 TensorFlow机器学习实战指南 Nick的博客 TensorFlow 采用数据流图进行数值计算.节点代表计算图中的数学操作,计 ...

  3. Web开发入门学习笔记

    公司web项目终于要启动了,本以为django学习可以在实战中进行,结果最终使用了Drupal框架,好吧,那我们就PHP走起,买了本<细说PHP>,先跟着过一遍Web开发入门. HTTP协 ...

  4. Android中Handler的消息处理机制以及源码分析

    在实际项目当中,一个很常见的需求场景就是在根据子线程当中的数据去更新ui.我们知道,android中ui是单线程模型的,就是只能在UI线程(也称为主线程)中更新ui.而一些耗时操作,比如数据库,网络请 ...

  5. amaze UI 笔记 - JS

    导航添加依据 http://amazeui.org/javascript 下面内容属学习笔记,如有理解偏差和错误请留言相告,感谢!* =(官网这块写的很详细) 一 .UI增强 1.警告框 显示可关闭的 ...

  6. flex盒模型 详细解析

    flex盒模型 详细解析 移动端页面布局,采用盒模型布局,效果很好 /* ============================================================    ...

  7. 对《cookie之困》的一些总结与思考

    0x00 前言 早些时候在gayhub翻安全大会的paper,翻到了kcon的一些paper. https://github.com/knownsec/KCon 从前辈们的paper中学到了不少,也产 ...

  8. Visual Studio 中添加SQLite数据源

    相关下载:https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 在Visual Studio中要支持访问SQLi ...

  9. Minfilter过滤框架

    Minfilter过滤框架 优势 与传统的Sfilter过滤驱动相比,有这样几个优势 1. Minfilter加载顺序更易控制,Sfilter加载是随意的,也就是说它在IO设备栈上的顺序是根据其创建的 ...

  10. 前端包管理工具 yarn

    yarn 是一个  与 npm 类似的 前端包管理工具 安装 windows  要去官网下载 (一定要去官网下载 .mis 文件进行安装)   用npm 或者 cnpm  也能安装 但是这种安装 有缺 ...