文档章节

java中的Boxing和unboxing

courtzjl
 courtzjl
发布于 2017/09/04 16:55
字数 289
阅读 3
收藏 0
题目很简单
   Integer i1 = 100;
   Integer i2 = 100;
   Integer i3 = 1000;
   Integer i4 = 1000;
   System.out.println(i1==i2);
   System.out.println(i3==i4);
正确答案是
true
false
这个的原因要从java5的Boxing和unboxing谈起,boxing就是封装基本类型的对象,unboxing就是转换对象到基本类型。
Integer, Long, Float, Double, Short, Character etc.都是这样的类型他们是immutable。
Boxing
在jdk1.4.2中,
必须是// Assigning primitive type to wrapper type
   Integer iWrapper = new Integer(10);
java5中
 // Assigning primitive type to wrapper type
   Integer iWrapper = 10;
unboxing
在jdk1.4.2中,
int iPrimitive = iWrapper.intValue();
java5中
int iPrimitive = iWrapper;
下面是基本类型作为对象存储的范围,
boolean values true and false 
All byte values 
short values between -128 and 127 
int values between -128 and 127 
char in the range \u0000 to \u007F 
如果int values between -128 and 127,VM使用相同的对象,否则创建新的对象。
所以这段代码,大家不要奇怪
System.out.println(0L == 0);
System.out.println(((Long)0L).equals(0));
第二行代码是0不等于0
因为大家犯这样的一个错误
 static private final String LOCK = "LOCK";
  void testMethod() {
    synchronized(LOCK) {
    ...
    }
  }
应该用new,不要直接=,对于int,最好使用int a[0] ,因为array也是对象,不像Integer,a[0]的值可以改变。

本文转载自:

共有 人打赏支持
courtzjl
粉丝 1
博文 78
码字总数 17227
作品 0
杭州
私信 提问
ITeye上“10个人,8个人不会解释这个问题”的帖子

原帖链接:http://www.iteye.com/topic/1117960 简单说一下问题,LZ要求解释下面的Java代码,x为什么最后是1。 Integer x = 1;x = x++;System.out.println(x); 不管这么说,我觉得这个问题还...

canghailan
2011/11/17
0
5
Java 8 将支持无符号整型

OpenJDK的领导者Joe Darcy在其Oracle博客上提交了一篇文章——Unsigned Integer Arithmetic API now in JDK 8,表示在Java 8中将提供对无符号整型的支持。详细的介绍请访问:http://blogs.or...

虫虫
2012/01/30
4.6K
14
PMD 5.1.3 发布,Java 程序代码检查工具

PMD是一款采用BSD协议发布的Java程序代码检查工具。该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。该软件功能强大,扫描效率高,是Java程...

oschina
2014/09/04
3K
1
Scala 不是改良的 Java,你会考虑使用 Scale 吗?

Scala 本身就基于 Java 平台,却要来跟 Java 比较,这有点不靠谱。 Scala编程语言拥有所有Java的语言特征,而且还支持所有的新兴的有趣的概念,例如闭包,higher-kinded类型,内联XML。如果你...

绿悠悠
2010/07/28
3.3K
10
.NET值类型和引用类型101

1.1.1 摘要 什么是值类型?什么是引用类型?这问题大家很久以前就讨论和研究过了,而且我相信很多人对值类型和引用类型的区别和用法都娴熟于心。这里我给出自己的总结,而且也提供大家一个复...

长平狐
2012/06/11
159
0

没有更多内容

加载失败,请刷新页面

加载更多

独家解密:阿里超大规模数据中心性能分析

郭健美,阿里巴巴高级技术专家,目前主要从事数据中心的性能分析和软硬件结合的性能优化。CCF 系统软件专委和软件工程专委的委员。曾主持国家自然科学基金面上项目、入选上海市浦江人才计划A...

阿里云云栖社区
32分钟前
3
0
独家解密:阿里大规模数据中心性能分析

郭健美,阿里巴巴高级技术专家,目前主要从事数据中心的性能分析和软硬件结合的性能优化。CCF 系统软件专委和软件工程专委的委员。曾主持国家自然科学基金面上项目、入选上海市浦江人才计划A...

zhaowei121
35分钟前
1
0
mongodb系列~配置文件的优化与处理

mongodb系列~配置文件的优化与处理 一 简介:讲讲如何优化mongo配置文件 二 常规参数 port= //端口 fork=true//守护进程方式启动mongo logpath=shard.log //mongo日志存放路径 journal= tru...

linjin200
37分钟前
1
0
同一台 windows10 设备,安装两个不同版本的mysql

两个mysql 的my.ini文件需要 配置不同的端口。 [mysqld]# 设置3307端口port=3307# 设置mysql的安装目录basedir=F:\\mysql-5.7.24-winx64 # 切记此处一定要用双斜杠\\,单斜杠我这里...

无敌小学僧
38分钟前
3
0
条码插件TBarCode Office系列教程一(Word Add-In篇)

TBarCode Office是一款适用于Microsoft Word 2007、2010和2013的条码插件,通过此插件可以轻松的在您的文档中嵌入代码。此系列教程旨在介绍TBarCode Office的常见问题及解答,帮助大家学习使...

ymy_666666
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部