Java 中 int 和 Integer 的区别

1. int 是基本数据类型,int 变量存储的是数值。Integer 是引用类型,实际是一个对象,Integer 存储的是引用对象的地址。

2.

Integer i = new Integer(100);

Integer j = new Integer(100);

System.out.print(i == j); //false

因为 new 生成的是两个对象,其内存地址不同。

3.

int 和 Integer 所占内存比较:

Integer 对象会占用更多的内存。Integer 是一个对象,需要存储对象的元数据。但是 int 是一个原始类型的数据,所以占用的空间更少。

4. 非 new 生成的 Integer 变量与 new Integer() 生成的变量比较,结果为 false。

/**

* 比较非new生成的Integer变量与new生成的Integer变量

*/

public class Test {

public static void main(String[] args) {

Integer i= new Integer(200);

Integer j = 200;

System.out.print(i == j);

//输出:false

}

}

因为非 new 生成的 Integer 变量指向的是 java 常量池中的对象,而 new Integer() 生成的变量指向堆中新建的对象,两者在内存中的地址不同。所以输出为 false。

5. 两个非 new 生成的 Integer 对象进行比较,如果两个变量的值在区间 [-128,127] 之间,比较结果为 true;否则,结果为 false。

/**

* 比较两个非new生成的Integer变量

*/

public class Test {

public static void main(String[] args) {

Integer i1 = 127;

Integer ji = 127;

System.out.println(i1 == ji);//输出:true

Integer i2 = 128;

Integer j2 = 128;

System.out.println(i2 == j2);//输出:false

}

}

java 在编译 Integer i1 = 127 时,会翻译成 Integer i1 = Integer.valueOf(127)。

6. Integer 变量(无论是否是 new 生成的)与 int 变量比较,只要两个变量的值是相等的,结果都为 true。

/**

* 比较Integer变量与int变量

*/

public class Test {

public static void main(String[] args) {

Integer i1 = 200;

Integer i2 = new Integer(200);

int j = 200;

System.out.println(i1 == j);//输出:true

System.out.println(i2 == j);//输出:true

}

}

包装类 Integer 变量在与基本数据类型 int 变量比较时,Integer 会自动拆包装为 int,然后进行比较,实际上就是两个 int 变量进行比较,值相等,所以为 true。

flaming

flaming

248***1347@qq.com2年前 (2018-12-12)

java round number,Java Number Math 类相关推荐

  1. linux java api_Java常用API、Math类介绍

    一.API的概述 API--Application Programing Interface:应用程序编程接口,是java提供的一些预定义的函数: 目的:基于API实现程序的快速编写,只需了解其作用, ...

  2. java float f1=0.5_Java Math类静态float copySign(float f1,float f2)与示例

    数学类float copySign(float f1,float f2)此方法在java.lang包中可用. 此方法用于返回第一个浮点参数以及第二个浮点参数的符号. 这是一个静态方法,因此也可以使用类 ...

  3. java math四舍五入类,Java中Math类的几个四舍五入方法的区别

    JAVA取整以及四舍五入 下面来介绍将小数值舍入为整数的几个方法:Math.ceil().Math.floor()和Math.round(). 这三个方法分别遵循下列舍入规则: Math.ceil() ...

  4. java中怎样定义实数_Java Math 类中的新功能,第 1 部分: 实数

    在这篇由两部分组成的文章中,Elliotte Rusty Harold 与您一起探讨经典 java.lang.Math 类中的"新"功能.第 1 部分主要讨论比较单调的数学函数.第 ...

  5. 嵌入式软件开发培训笔记——java第五天(API——math/string/集合/日期时间以及java线程)

    目录 掌握命令行参数的使用 掌握Math类中常用的方法 掌握String/StringBuffer/StringBuilder的用法 掌握几种常用集合类的用法 掌握日期和时间处理 1.命令行参数 Ja ...

  6. java number比较大小_JAVA Number与Math类

    Number类: 当要用到数字的时候,我们除了使用内置数据类型byte,int,double等来声明,我们还把它声明为一个对象: 所有的包装类(Integer.Long.Byte.Double.Flo ...

  7. Java 读书笔记 (十一) Number Math 类

    所有的包装类(Integer.Long.Byte.Double.Float.Short)都是抽象类Number的子类. 这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译 ...

  8. java分装_Java ——Number Math 类 装箱 拆箱 代码块

    本节重点思维导图 当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等 int a = 5000;float b = 13.65f;byte c = 0x4 ...

  9. java number string_java基础系列(一):Number,Character和String类及操作

    这篇文章总结了Java中最基础的类以及常用的方法,主要有:Number,Character,String. 1.Number类 在实际开发的过程中,常常会用到需要使用对象而不是内置的数据类型的情形.所 ...

  10. Java,Math类中的ceil、floor和round函数源码解析以及自己重写实现

    1. ceil.floor和round的功能 首先,这三个方法都是Math类的静态方法,而且类Math在java.lang包下,所以我们在代码中可以直接调用Math的方法. Math.ceil(dou ...

最新文章

  1. 2020年Q1微信公众号文章列表
  2. mysql 5.5 主从双向同步,请教mysql 定时 双向 主从同步問題
  3. Linux发行版,分类,CentOS下载
  4. 华为面试题——一道关于指针方面的编程题(C/C++)
  5. 技能CDDemo(点击鼠标左键实现技能界面旋转)
  6. 【LIBSVM中的 SVMcgForClass提示不存在的解决方法】
  7. 服务器配置文档查服务器名称,服务器配置答案资料.doc
  8. os.path 模块
  9. 近4年个人收款码数据将被追查补税?微信、支付宝紧急回应了
  10. flow.php 漏洞,Ecshop 3.0的flow.php文件SQL注射漏洞修复
  11. android RadioGroup中设置selector后出现多个别选中的RadioButton的解决办法
  12. 在自动驾驶技术上,一向自信满满的马斯克也承认了特斯拉的不足
  13. NOD32反病毒系统升级
  14. JUnit4 Note (尚学堂马士兵)
  15. Nature综述|整合组学分析护航健康,推动精准医学时代的到来!
  16. 渐变按钮 css,CSS3 Gradient Buttons
  17. 优盘突然显示无法在此计算机,复制文件到U盘时突然无法复制提示磁盘被写保护该如何修复...
  18. html页面字体飞入飞出特效,JS网页特效:星空飞入效果
  19. 关于头歌C/C++编程实训数组实训朋友圈点赞的一个题解
  20. 网页前往小程序指定页面

热门文章

  1. 一分钟就可以轻松将文字转换成语音,简单方法讲解
  2. KafKa集群安装、配置
  3. 玩转SCVMM中的更新基线,实现虚拟平台基础服务器补丁自动更新
  4. Win32API 窗口程序的创建7大步骤
  5. 安卓Webview缓存网页数据(无网络正常显示)
  6. zenoss core
  7. 安装您的Sbo Add-on插件
  8. 使用java+TestNG进行接口回归测试
  9. 赋值、浅拷贝、深拷贝
  10. C++14尝鲜:Generic Lambdas(泛型lambda)