文档章节

java中的Boxing和unboxing

courtzjl
 courtzjl
发布于 2017/09/04 16:55
字数 289
阅读 112
收藏 0

精选30+云产品,助力企业轻松上云!>>>

题目很简单
   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
杭州
私信 提问
加载中
请先登录后再评论。
Java Generics and Collections

Java Generics and Collections PART I Generics This part of the book describes generics, using the CollectionsFramework as a source of examples. CHAPTER 1 Introduction Generics a......

LuXing
2014/03/27
16
0
Java Int和Integer有什么区别?

Int int是我们常说的整型数字,是Java的8个原始数据类型(Primitive Type:boolean、byte、short、char、int、float、double、long)之一。Java语言虽然号称一切都是对象,但原始数据是例外。...

osc_44fs053n
2018/06/16
2
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
260
5
Wrapper Classes in Java

Overview As the name suggests, wrapper classes are objects encapsulating primitive Java types. Each Java primitive has a corresponding wrapper: boolean, byte, short, char, int, ......

Ciet
01/29
12
0
Scala的 Predef 对象

Scala的Predef对象 隐式引用(Implicit Import) Scala会自己主动为每一个程序加上几个隐式引用,就像Java程序会自己主动加上java.lang包一样。 Scala中。下面三个包的内容会隐式引用到每一个程...

SoWhat1412
04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

要求jQuery在执行某些操作之前等待所有图像加载的官方方式

问题: In jQuery when you do this: 在jQuery中,当您执行以下操作时: $(function() { alert("DOM is loaded, but images not necessarily all loaded");}); It waits for the DOM t......

法国红酒甜
昨天
11
0
实现Map按值排序

Map按照值排序,需要自定义比较器,实现Comparator接口,实现compare方法。 public class SortByVlue {public static void main(String[] args) {Map<String, Long> map = new HashMap<......

游人未归
昨天
16
0
定天气爬虫加定时发送天气邮件

今天无聊,在家研究个爬虫玩玩 主要用到以下几个库: request 请求资源 iconv-lite转码,有的网站html格式不是utf-8 cheerio类似jq,操作html,获取相关爬虫数据 nodemailer 发送邮件,例如q...

莫西摩西
昨天
14
0
还在为大屏分辨率困扰?图扑提供响应式(自适应)可视化大屏

前言 数据可视化在当下信息时代已经成为炙手可热的话题,而 B/S 化趋势,也使得许多大屏应用上在网页端出现,今天给大家分享一套不一样风格的大屏页面,与传统深蓝色不同,这次采用了暗红色设...

xhload3d
昨天
20
0
如何妙用Spring 数据绑定机制

前言 在剖析完 Spring Boot 返回统一数据格式是怎样实现的?文章之后,一直觉得有必要说明一下 Spring's Data Binding Mechanism 「Spring 数据绑定机制」。 默认情况下,Spring 只知道如何转...

码农小胖哥
2019/12/27
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部