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 =
new
Integer(
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 ...
随机推荐
- Atitit.数据库事务隔离级别 attilax 总结
Atitit.数据库事务隔离级别 1. 事务隔离级别的作用 1 2. 在的隔离级别 2 3. 常见数据库的默认管理级别 3 1. 事务隔离级别的作用 较低的隔离级别可以增强许多用户同时访问数据的能力, ...
- 对象.delegate=self的理解
整理自:http://www.cocoachina.com/ask/questions/show/87430 各位大神,对象.delegate=self是啥意思,委托的意思不就是自己的任务交给其他人去 ...
- Struts2初学 Struts.xml详解二
A.使用继承实现设置全局视图 package节点中还可以设置全局的视图,如: <global-results> <result name="e ...
- ubuntu下刷新dns
也是一条命令就可以:sudo /etc/init.d/dns-clean start
- 华农校赛--G,用set比较大小,缩短时间复杂度
Array C Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 581 Solved: 101[Submit][Status][Web Board] D ...
- Bootstrap学习笔记(7)--轮播
说明: 1. 幻灯片效果,外面的div有个id="myppt",class="carousel slide"这个是有图片滑动效果,不加就是直接瞬间换图片,dat ...
- 基于jQuery仿Flash横向切换焦点图
给各网友分享一款基于jQuery仿Flash横向切换焦点图.利用Flash可以制作很多漂亮的图片相册应用,今天我们要用jQuery来实现这样的效果.它是一款仿Flash的横向图片切换焦点图插件,可以自 ...
- exit会结束一个进程
#include <stdio.h> #include <unistd.h> #include <sys/types.h> #include<stdlib.h ...
- 缓存技术PK:选择Memcached还是Redis(转)
[IT168 技术]要Memcached还是要Redis?在构建一款现代且由数据库驱动的Web应用程序并希望使其拥有更为出色的性能表现时,这个问题总会时不时出现.并给每一位开发人员带来困扰.在考虑对应 ...
- Lua中的常用语句结构以及函数
1.Lua中的常用语句结构介绍 --if 语句结构,如下实例: gTable = {} ] ] then ]) == gTable[] then ]) else print("unkown ...