java类型比较_java 基本数据类型 ==和equals()比较

1.基本类型的存储

Java 8种基本类型都是存储在堆栈中,例:int i = 1;String str = "hello world";也是存储在堆栈中。

new基本类型的包装器类型和new String()都是存储在堆内存中。例Integer i = new Integer(1);String str = new String("hello world");

2.==和equels()比较的含义

1.==是比较对象的内存地址,基本类型就是比较值

2.java对象的equals()方法都是继承Object.equals(Object o)方法的。比较的内容其实就是使用了“==”比较对象内存地址。

public boolean equals(Object obj) {

return (this == obj);

}

java8种基本类型包装器类和String类都重写了equals()方法,先比较类型在比较值,例如Long.equals(Object obj)

public boolean equals(Object obj) {

if (obj instanceof Long) {

return value == ((Long)obj).longValue();

}

return false;

}

3.实例==和equels()比较

int int3 = 3;

Integer integer3 = new Integer(3);

Integer integer3_2 = new Integer(3);

Integer integer3_3 = 3;

Integer integer3_4 = 3;

Integer integer321 = 321;

Integer integer321_2 = 321;

int int321 = 321;

int int321_2 = 321;

Long long3 = 3l;

System.out.println(integer3==integer3_2); //false #1

System.out.println(integer3_3==integer3_4); //true #2

System.out.println(integer3==int3); //true #3

System.out.println(integer3_3.equals(integer3_4)); //true #4

System.out.println(integer321==integer321_2); //false #5

System.out.println(int321==int321_2); //true #6

System.out.println(long3==int3); //true #7

System.out.println(long3.equals(int3)); //false #8

#1  new两个Integer对象,分配内存在堆中,两个地址块不同

#2 Integer integer3_3 = 3;java编译后的代码为Integer integer3_3 = Integer.valueOf(3);

查看java Integer.valueOf(int)源码public static Integer valueOf(int i) {

assert IntegerCache.high >= 127;

if (i >= IntegerCache.low && i <= IntegerCache.high)

return IntegerCache.cache[i + (-IntegerCache.low)];

return new Integer(i);

}原来-128<=int<=127的值java栈中有缓存都指向同一个地址,不在这个范围内的int值都是new一个新的Integer,所以#2为true,#5为false

#3 基础类型和包装类运算时,包装类会拆包,所以就是两个值运算

#7 btye,short,int,long运算时,都会向上转型到同一类型运算

#8 equals()比较是先比较类型在比较值,类型不一样所以为false

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2014-06-14 21:28

浏览 2176

评论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式操作系统的主要特点都有哪些

嵌入式操作系统&#xff08;EOS&#xff09;是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件&#xff0c;通常包括与硬件的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式系统分为4层&#xff1a;硬件层、驱动层、…

UIWebView UITextView

// // ViewController.m // 网页 //#import "ViewController.h"interface ViewController ()<UITextFieldDelegate,UIWebViewDelegate> property (weak, nonatomic) IBOutlet UITextField *textFiled; property (weak, nonatomic) IBOutlet UIWebView *webVi…

BeanFactory和ApplicationContext有什么区别?

BeanFactory&#xff1a; 是Spring里面最底层的接口&#xff0c;提供了最简单的容器的功能&#xff0c;只提供了实例化对象和拿对象的功能 ApplicationContext&#xff1a; 应用上下文&#xff0c;继承BeanFactory接口&#xff0c;它是Spring的一各更高级的容器&#xff0c;提…

java的继承实例_Java继承和多态实例

我们知道面向对象的三大特性是封装、继承和多态。然而我们有时候总是搞不清楚这些概念。下面对这些概念进行整理&#xff0c;为以后面向抽象的编程打下坚实的基础。封装的概念还是很容易理解的。如果你会定义类&#xff0c;那么相信你对封装的概念已经完全掌握了。下面定义的几…

【数据库】13种会导致索引失效语句写法

数据库的索引是保证数据快速查询的重中之重&#xff0c;以下13种会导致索引失效语句会导致你的SQL查询索引失效&#xff0c;具体如下&#xff1a;1、使用like关键字模糊查询时&#xff0c;% 放在前面索引不起作用&#xff0c;只有“%”不在第一个位置&#xff0c;索引才会生效&…

yii2史上最简单式安装教程,没有之一

作者&#xff1a;白狼 出处&#xff1a;www.manks.top/article/yii2_install 本文版权归作者&#xff0c;欢迎转载&#xff0c;但未经作者同意必须保留此段声明&#xff0c;且在文章页面明显位置给出原文连接&#xff0c;否则保留追究法律责任的权利。 最近有小伙伴私聊我&…

java static调用吗_Java中的static的使用

1.Java 中被static修饰的成员称为静态成员或类成员。它属于整个类所有&#xff0c;而不是某个对象所有&#xff0c;即被类的所有对象所共享、且优先于对象存在。静态成员可以使用类名直接访问&#xff0c;也可以使用对象名进行访问。使用 static 可以修饰变量、方法和代码块。2…

15个搞笑的程序员段子

1. 问答Q&#xff1a;你是怎么区分一个内向的程序员和一个外向的程序员的&#xff1f;A&#xff1a;外向的程序员会看着你的鞋和你说话时。Q&#xff1a;为什么程序员不能区分万圣节和圣诞节&#xff1f;A&#xff1a;这是因为 Oct 31 Dec 25&#xff01;&#xff08;八进制的…

java ffmpeg 获取视频时长_Java通过调用FFMPEG获取视频时长

FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec&#xff0c;为了保证高可移植性和编解码质量&#xff0…

盘点15个搞笑的程序员段子

1.车Delphi象吉普车&#xff0c;什么路上都能开&#xff0c;却在啥路上也开不好&#xff1b;PB就象卡丁车&#xff0c;只能在固定线路上开&#xff0c;到室外就有些不稳&#xff1b;VC象跑车&#xff0c;你开得起却买不 起&#xff0c;而且一旦发生故障&#xff0c;想修都找不到…

判断listview是上滑还是下滑的方法

方法一&#xff1a; 用setOnScrollListener(new AbsListView.OnScrollListener()&#xff09;来实现&#xff0c;判断滑动后显示的第一个条目 &#xff0c;与滑动前的第一个条目的大小来判断&#xff0c; 这种方法逻辑简单&#xff0c;但是必须要滑动到当前第一条目隐藏后才能起…

如何保证消息不被重复消费~~~~~(如何保证消息队列的幂等性)

分析&#xff1a;这个问题其实换一种问法就是&#xff0c;如何保证消息队列的幂等性&#xff1f;这个问题可以认为是消息队列领域的基本问题。换句话来说&#xff0c;是在考察你的设计能力&#xff0c;这个问题的回答可以根据具体的业务场景来答&#xff0c;没有固定的答案。 回…

SpringBoot:搭建第一个Web程序

本文简单介绍一下spingBoot搭建web程序的流程&#xff0c;希望对入门学习spingBoot的朋友有所帮助。本文采用的开发工具是IDEA。 1、打开IDEA&#xff0c;创建项目。 2、点击创建项目&#xff0c;进入下一步&#xff0c;具体按照画红框的操作。 3、点击下一步 4、点击下一步&am…

java uuid 效率_java uuid第一次性能

在java中产生uuid的方式是使用java.util.UUID。UUID.randomUUID().toString();我在测试redis性能时&#xff0c;使用uuid产生测试数据&#xff0c;发现多线程测试redis的rpush接口的时候&#xff0c;性能老是上不去。 查看cpu利用率也不高&#xff0c;网卡流量也不大。就是tps上…

第八周----补

这一周真不知道过得是什么&#xff0c;除了上课&#xff0c;感觉相当的混乱。 整个人每天都是处在消沉状态&#xff0c;连这次作业都没能很好的补上。 我的心情也像天气一样变得不稳定&#xff0c;一会晴天一会雨天的&#xff0c;更多的就是闷闷的感觉。 总会说事情很多忙的头晕…

SpringBoot:application.properties基本的参数配置

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

java method 注释_Java注解

Java注解注解概述3、注解3.1、注解&#xff0c;或者叫做注释类型&#xff0c;英文单词是&#xff1a;Annotation疑问&#xff1a;注解到底是干啥的&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;3.2、注解Ann…