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 ...
随机推荐
- Flume 中文入门手冊
原文:https://cwiki.apache.org/confluence/display/FLUME/Getting+Started 什么是 Flume NG? Flume NG 旨在比起 Flu ...
- 幸好会java
转做android的可能性又往前增加了一分.
- js、jquery遍历对象
js遍历对象: var obj = {a:1,b:2,c:3} for(var s in obj){ alert(obj[s]); } jquery遍历对象: var obj = {a:1,b:2,c ...
- Spider Studio 界面功能布局
SS是Spider Studio (采集工作站) 的简称, 这是由GDT团队开发的一款互联网数据采集开发工具. 它以浏览器为基础, 运用JQuery技术, 结合脚本化C#的强大功能, 能够轻松解决各类 ...
- Flowplayer-一款免费的WEB视频播放器(转)
Flowplayer 是一个开源(GPL 3的)WEB视频播放器.您可以将该播放器嵌入您的网页中,如果您是开发人员,您还可以自由定制和配置播放器相关参数以达到您要的播放效果.本文主要介绍Flowpla ...
- 原生Orcale数据库连接
package tj.test.demo; import java.sql.Connection;import java.sql.DriverManager;import java.sql.Prepa ...
- 二分图匹配 + 最小点覆盖 - Vertex Cover
Vertex Cover Problem's Link Mean: 给你一个无向图,让你给图中的结点染色,使得:每条边的两个顶点至少有一个顶点被染色.求最少的染色顶点数. analyse: 裸的最小点 ...
- 进制A~Z,全字母26进制转化
public String to26( int x ) { StringBuffer sBuffer = new StringBuffer(); int cur; x++; while( x > ...
- sdut 2159:Ivan comes again!(第一届山东省省赛原题,STL之set使用)
Ivan comes again! Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 The Fairy Ivan gave Say ...
- 【cb2】扩展硬盘
1.硬盘为sata串口 2.参考 http://docs.cubieboard.org/tutorials/ct1/installation/moving_rootfs_from_nandflash_ ...