int类型
int类的简介
int是Java的8大基本数据类型之一,32位,有符号的以二进制补码表示的整数
最小值
最大值
整形变量默认是int类型
int类型默认值是
基本数据类型的对象都在栈中,所以可以直接用==来判断两个int类型的是否相等
Integer类
Integer类简介
Integer类是基本数据类型int的包装器类,是抽象类Number的子类,位于java.lang包中
Integer类在对象中包装了一个基本类型int的值,也就是每个Integer对象包含一个int类型的字段。在Integer源码中如下
private final int value;
占多少位?
System.out.println(Integer.BYTES); //4
System.out.println(Integer.SIZE); //32
可以看出,Integer占32位,4个字节,和int类型是一样的
最大值和最小值
System.out.println(Integer.MAX_VALUE);//2147483647
System.out.println(Integer.MIN_VALUE);//-2147483648
初始化方法
构造函数
Integer(int value);
Integer(String s); //String里面只能写数字
这两种构造方法现在已经被废弃了,更多的现在是直接写=,就像这样:
Integer i = 100;
默认值是NULL
对比int和Integer
1)“==”和equals()方法:
在Integer类中,“==”用来比较对象地址是否相同,并且Integer类重写了equals(Object obj)方法,
在equals(Object obj)方法中,会先判断参数中的对象obj是否是Integer类型的对象,
如果是则判断值是否相同,值相同则返回true,
值不同则返回false,如果obj不是Integer类的对象,则返回false。
int a = 200;
Integer b = 200;
Integer c = 200;
Integer d = 2;
Integer e = 2;
//a在进行比较时,会***自动装箱***
System.out.println(b.equals(a)); //true
//因为b是Integer对象,a是基本数据类型int的变量,当进行“==”比较时,b会***自动拆箱***成int,从而比较的就是变量的值是否相等
System.out.println(b == a); //true
//对比两个值相等的Integer对象(),如果用==,Integer的值在-128~127之间,则直接比对的是值,不在这个范围里就比较地址:
System.out.println(b == c); //false
System.out.println(d == e); //true
另外,Integer类里面还有很多很实用的方法:
函数 | 解释 |
---|---|
[static int] bitCount(int i) | 返回指定 int 值的二进制补码表示形式的 1 位的数量 |
[static int] compare(int x,int y) | 比较x和y的值,当x大于y时返回1,当x等于y时返回0,否则返回-1 |
[int] compareTo(Integer anotherInteger) | 在数值上比较两个Integer对象 |
[boolean] equals(Object obj) | 比较此对象与指定对象 |
[int] hashcode() | 返回此对象的哈希码 |
[static int] parseInt(String str) | 将字符串参数作为有符号十进制数进行解析 |
[static String] toBinaryString(int i) | 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式 |
[String] toString() | 返回该Integer值得String对象 |
[static Integer] valueOf(int i) | 返回一个表示指定的 int 值的 Integer 实例 |
网友评论