java面试基础题------》int Integer Integer.valueOf
|
1
2
3
4
|
Integer i01 = 59;int i02 = 59;Integer i03 =Integer.valueOf(59);Integer i04 = new Integer(59)。 |
正确答案: C
System.out.println(i01== i02);
System.out.println(i01== i03);
System.out.println(i03== i04);
System.out.println(i02== i04);
|
1
2
3
4
|
Integer i01 = 59;int i02 = 59;Integer i03 =Integer.valueOf(59);Integer i04 = new Integer(59); |
原因分析:因为int类型和integer类型在jdk1.5之后对比的时候就进行了自动拆箱所以这里i01== i02是true i02== i04是true
然后让我们来分析下Integer.valueOf返回表示指定的int值的整数实例。此方法将始终缓存-128到127(含)范围内的值来看源码:如果不在-128到127就new一个integer对象
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
题目中是59所以这个方法是从缓存中找到数据的,也是可以将i03看成Integer i03 = i01=59;(i01== i03是true)
Integer类型相互比较是两个对象进行比较不是值,所以false
i01== i04是falsei03== i04是falseDemo:
public static void main(String[] args) {
Integer i01 = 59;
System.out.println("i01="+i01);
int i02 = 59;
System.out.println("i02="+i02);
Integer i03 =Integer.valueOf(59);
System.out.println("i03="+i03);
Integer i04 = new Integer(59);
System.out.println("i04="+i04);
System.out.println(i04==i03);
System.out.println(i04==i01);
System.out.println(i03==i01);
}
控制台:
重点来了,敲黑板!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
如果不是59,而是小于-128或者大于127,i03会new一个新的interger,也就是说将i03看成Integer i03 =newInteger(59);(i01== i03是false)Demo
public static void main(String[] args) {
Integer i01 = 359;
System.out.println("i01="+i01);
int i02 = 359;
System.out.println("i02="+i02);
Integer i03 =Integer.valueOf(359);//看成Integer i03 =new Integer(59);
System.out.println("i03="+i03);
Integer i04 = new Integer(359);
System.out.println("i04="+i04);
System.out.println(i04==i03);
System.out.println(i04==i01);
System.out.println(i03==i01);
}
控制台:
java面试基础题------》int Integer Integer.valueOf的更多相关文章
- java面试基础题(三)
程序员面试之九阴真经 谈谈final, finally, finalize的区别: final:::修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此 ...
- java面试基础题------》Java 中的父子类静态代码块,代码块,构造方法执行顺序
4.指出下面程序的运行结果. class A { static { System.out.print("1"); } public A() { System.out.print(& ...
- java面试基础题------》抽象类和接口有什么异同
划重点!!!! 1.抽象类(abstract class)和接口(interface)有什么异同? 相同点 * 都不能被直接实例化,都可以通过继承实现其抽象方法. * 都是面向抽象编程的技术基础,实现 ...
- java面试基础题------》Java 中List、Set、Map异同点
借鉴地址:http://blog.csdn.net/speedme/article/details/22398395 几句喜欢的话,拷贝下来: 世间上本来没有集合,(只有数组参考C语言)但有人想要,所 ...
- java面试基础题------》Java 中的final关键字有哪些用法
(1)修饰类:表示该类不能被继承: (2)修饰方法:表示方法不能被重写: (3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量).
- 分享13道上海尚学堂拿回来的Java面试真题,这些都是Java核心常见问题,想拿OFFER必看!
上海尚学堂Java培训学员参加面试带回来的真题,分享出来与大家,希望大家能认真地看看做一遍.后面有详细题解答案,对照下,看看自己做得怎么样,把这些面试遇到的真题全部掌握,做好面试笔试前的准备. 一.1 ...
- Java底层基础题
一.Java底层基础题 1.SpringMVC的原理以及返回数据如何渲染到jsp/html上? 答:Spring MVC的核心就是DispatcherServlet , 一个请求经过Dispatche ...
- Java面试题精选(三) JSP/Servlet Java面试逻辑题
-- JSP/Servlet Java面试逻辑题 -- 很显然,Servlet/JSP的WEB前端动态制作的重要性比HTML/CSS/JS的价值高很多,但我们都知道他们都是建立在HT ...
- 一些iOS面试基础题总结
一些iOS面试基础题总结 目录 多线程 AutoLayout objc_msgSend Runtime 消息转发 Category NSObject 与 objc_class Runloop Auto ...
随机推荐
- 浅谈I2C总线
I2C总线概述 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备.I2C总线最主要的优点是其简单性和 ...
- tomcat开启https协议
1.在tomcat的conf/server.xml 中配置 <Connector port="443" protocol="org.apache.coyote.ht ...
- 基于HTML5 Canvas生成粒子效果的人物头像
前面我们分享过一个HTML5 Canvas实现的图像马赛克模糊效果,HTML5处理图片真的非常简单.今天我们要再利用HTML5 Canvas实现一个粒子效果的人物头像,你可以任意选择一张头像图片,接下 ...
- JSF中获得HTTP SESSION和Request
转载自:http://blog.sina.com.cn/s/blog_872758480100waew.html 为了保持向后兼容,我们有时可能会需要访问session对象.在JSF中可以通过如下方式 ...
- How to clone a brach from github
git clone address.git -b brach_name destination_floder
- 如意云路由刷PandoraBox
目录 1 准备固件 2 使用uboot刷机 2.1 修改IP 2.2 开始刷写 3 ssh登录 4 刷回如意云 准备固件 http://downloads.openwrt.org.cn/Pandora ...
- Python安装相关的机器学习库以及图像处理库
安装 sudo apt-get install python-scipy sudo apt-get install python-numpy sudo apt-get install python-m ...
- 转载 Python导入模块的几种姿势
作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包.但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机制其实非常灵活.在本文中,我们将探讨以下 ...
- 最新Android面试题集锦
近期由于某些原因想换工作,整理一下个人认为面试中还比較值得记录的一些题目,给须要找这方面工作的人一个借鉴. 下面基本仅仅记录题目或者大概答案,假设大家有比較具体的解答或者比較好的面试题木,希望各位看到 ...
- UNIQLO
UNIQLO品牌的迅销公司建立于1963年,当年是一家销售西服的小服装店.公司现任董事长兼总经理柳井正早年毕业于早稻田大学经济学专业,1972年8月进入迅销公司,1984年9月就任公司董事长兼总经理. ...