Java中的int和Integer

代码:

 1 public class Test{
 2
 3     public static void main(String[] args){
 4         Integer i01 = 59;
 5         int i02 = 59;
 6         Integer i03 = Integer.valueOf(59);
 7         Integer i04 = new Integer(59);
 8         System.out.println(i01==i02);
 9         System.out.println(i01==i03);
10         System.out.println(i03==i04);
11         System.out.println(i02==i04);
12
13     }
14 }

输出:

true
true
false
true

总结:

  ①无论如何,Integer与new Integer不会相等。不会经历拆箱过程,i3的引用指向堆,而i4指向专门存放他的内存(常量池),他们的内存地址不一样,所以为false
  ②两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false
  java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存
  ③两个都是new出来的,都为false
  ④int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比
时间: 2025-01-03 21:39:19

Java中的int和Integer的相关文章

Java 中的 int 与 Integer 用于 List<Integer> 时,以及通过打印变量检测程序运行和函数调用次数计数

总结一下最近做的东西中遇到的问题 1. Java 中的 int 与 Integer 用于 List<Integer>  时 两者之间的关系都是很清楚的,int 是基本数据类型,存储的是值,而 Integer 是引用数据类型,存储的是指向数值的地址. Integer 是在类层面上对 int 的封装.然后 Java 提供了自动装包拆包机制,使得两者之间可以转换.这里主要是测试了下它们用于 List 时候的疑惑. /* * To change this template, choose Tools

Java中String类与Integer类的几个方法

计算诸如-123,456,789 + 123,123的值 import java.math.BigInteger; import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner cin = new Scanner(System.in); String str1, str2; BigInteger a, b; while(cin.hasNext()){ str1 = cin.

java中String,int,Integer,char、double类型转换

转自 http://blog.csdn.net/zhang103886108/article/details/42917693 1.如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 2.如何将字串 String 转换成Integer ?Integer integer=Integer.valueOf(str); 3.如何将整数 int 转换成字串 Stri

java里的 int n=Integer.parseInt(args[0])

1. int是java的基本数据类型,"int n"表示定义了一个int 型的变量n;2. int n = Integer.parseInt(args[0]) 表示给定义的变量n 赋予一个初值为"Integer.parseInt(args[0])";3. Integer.parseInt(args[0])中,Integer是java中的一个内置类,parseInt()是这个类的一个静态方法,这个方法的作用是把括号里面的参数(args[0])转为int型的值,比如定义

关于Java编程,int和Integer有OA现金盘网站开发什么区别?

int是我们OA现金盘网站开发haozbbs.com Q1446595067常说的整型数字,是Java的8个原始数据类型之一.Java语言虽然号称一切都是对象,但原始数据类型是例外. Integer是int对应的包装类,它有一个int类型的字段存储数据,并且提供了基本操作,比如数学运算.int和字符串之间转换等.在Java 5中,引入了自动装箱和自动拆箱功能(boxing/unboxing),Java可以根据上下文,自动进行转换,极大地简化了相关编程. 知识扩展 1.理解自动装箱.拆箱 自动装箱

java里的 int vs Integer

int vs Integer 基本类型int的默认值为0;对应的封装类型Integer的默认值为null Integer对象会占用更多的内存.Integer是一个对象,需要存储对象的元数据.但是int是一个原始类型的数据,所以占用的空间更少 自动装箱:将基本数据类型转换成相应的包装类类型 自动拆箱:将包装类类型转换成对应的基本数据类型 // 自动装箱 Integer integer =100; // 自动拆箱 int i = interger; **IntegerCache**整型对象在内部实现

java中byte, int的转换

最近在做些与编解码相关的事情,又遇到了byte和int的转换,看着那些关于反码.补码的说明依旧头疼,还是记下些实用的方法吧.int -> byte可以直接使用强制类型转换: byte b = (byte) aInt;这个操作是直接截取int中最低一个字节,如果int大于255,则值就会变得面目全非了.对于通过InputStream.read()获取的int,可采用这个方法将值还原. byte -> int这里有两种情况,一种是要求保持值不变,例如进行数值计算,可采用强制类型转换:int i =

【转】java中byte, int的转换

原文网址:http://freewind886.blog.163.com/blog/static/661924642011810236100/ 最近在做些与编解码相关的事情,又遇到了byte和int的转换,看着那些关于反码.补码的说明依旧头疼,还是记下些实用的方法吧.int -> byte可以直接使用强制类型转换: byte b = (byte) aInt;这个操作是直接截取int中最低一个字节,如果int大于255,则值就会变得面目全非了.对于通过InputStream.read()获取的in

Java中Integer和ThreadLocal

一. Integer 1.引子 在开始之前,我还是需要吐槽下自己,我是真的很菜! 他问:**两个Integer对象==比较是否相等? 我答:对象==比较,是引用比较,不相等! 他问:IntegerCache这个用来干什么? 我答:......,我不是很清楚!!! 从这里可以看出,我是真的很水!! 基于这些原因还有其他的等等,我开始写博文,开始写踩过的坑! 2.IntegerCache 在介绍这个缓存之前,先来认知下Integer.java中,int是基本的数值类型,表示整型:Integer是其对