int与Integer类型关系
2016-03-30 16:19
405 查看
/*
测试Integer与int类型的关系
*/
public class TestInteger{
public static void main(String[] args){
/*Integer i01 = 59;
int i02 = 59;
Integer i03 =Integer.valueOf(59);
Integer i04 = new Integer(59);
System.out.println(i01== i02);
System.out.println(i02== i03);
System.out.println(i01== i03);
System.out.println(i01== i04);//false
System.out.println(i03== i04);//false
System.out.println(i02== i04);*/
int x1 = 127;
Integer x2 = 127;
System.out.println("x1==x2:" + (x1==x2));//true
int x3 = 200;
Integer x4 = 200;
System.out.println("x3==x4:" + (x3==x4));//true
int x5 = 200;
Integer x6 = 200;
System.out.println("x6==x5:" + (x6==x5));//true,
int i1 = 20;
int i2 = 20;
//System.out.println("i1.equals(i2):" + i1.equals(i2));//编译出错,无法取消引用int
Integer a = 300;
Integer b = 300;
System.out.println("a.equals(b):" + a.equals(b));
/*
Integer y01 = 127;
Integer y02 = 127;
System.out.println("y01==y02:" + (y01==y02));//true
Integer y1 = Integer.valueOf(128);
Integer y2 = 128;//相当于Integer y2 = Integer.valueOf(128);
System.out.println("y1==y2:" + (y1==y2));//false,
Integer y3 = -129;
Integer y4 = -129;
System.out.println("y3==y4:" + (y3==y4));//false,
*/
/*
小结:
Integer.valueOf()方法基于减少对象创建次数和节省内存的考虑,缓存了[-128,127]之间的数字。
此数字范围内传参则直接返回缓存中的对象。在此之外,直接new出来。
*/
/*总结:
1,==两边只要有一边是基本数据类型,运算时只取栈内存的变量值进行比较,不管堆内存地址
2,==两边都是引用类型时,比较的是堆内存地址值。
3,但是,Integer.valueOf()方法基于减少对象创建次数和节省内存的考虑,缓存了[-128,127]之间的数字,,
此数字范围内传参则直接返回缓存中的对象。在此之外,直接new出来。
4,equals比较的是2个对象的内容,只能做引用类型的比较。
*/
}
}
测试Integer与int类型的关系
*/
public class TestInteger{
public static void main(String[] args){
/*Integer i01 = 59;
int i02 = 59;
Integer i03 =Integer.valueOf(59);
Integer i04 = new Integer(59);
System.out.println(i01== i02);
System.out.println(i02== i03);
System.out.println(i01== i03);
System.out.println(i01== i04);//false
System.out.println(i03== i04);//false
System.out.println(i02== i04);*/
int x1 = 127;
Integer x2 = 127;
System.out.println("x1==x2:" + (x1==x2));//true
int x3 = 200;
Integer x4 = 200;
System.out.println("x3==x4:" + (x3==x4));//true
int x5 = 200;
Integer x6 = 200;
System.out.println("x6==x5:" + (x6==x5));//true,
int i1 = 20;
int i2 = 20;
//System.out.println("i1.equals(i2):" + i1.equals(i2));//编译出错,无法取消引用int
Integer a = 300;
Integer b = 300;
System.out.println("a.equals(b):" + a.equals(b));
/*
Integer y01 = 127;
Integer y02 = 127;
System.out.println("y01==y02:" + (y01==y02));//true
Integer y1 = Integer.valueOf(128);
Integer y2 = 128;//相当于Integer y2 = Integer.valueOf(128);
System.out.println("y1==y2:" + (y1==y2));//false,
Integer y3 = -129;
Integer y4 = -129;
System.out.println("y3==y4:" + (y3==y4));//false,
*/
/*
小结:
Integer.valueOf()方法基于减少对象创建次数和节省内存的考虑,缓存了[-128,127]之间的数字。
此数字范围内传参则直接返回缓存中的对象。在此之外,直接new出来。
*/
/*总结:
1,==两边只要有一边是基本数据类型,运算时只取栈内存的变量值进行比较,不管堆内存地址
2,==两边都是引用类型时,比较的是堆内存地址值。
3,但是,Integer.valueOf()方法基于减少对象创建次数和节省内存的考虑,缓存了[-128,127]之间的数字,,
此数字范围内传参则直接返回缓存中的对象。在此之外,直接new出来。
4,equals比较的是2个对象的内容,只能做引用类型的比较。
*/
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树