Java基础类型自动装箱(autoboxing)
Java SE 1.5 版本及之后,开始提供自动装箱功能。
自动装箱,将基础类型“包装”成一种类型:
基本类型 --> 包装器类
如下过程可触发自动装箱过程:
Integer count = 1;
Double amount = 2.0D
从 Javadoc API 上看,包装器类提供方法,对封装的基础类型进行操作:
类型转换,如 float --> int
比较
...
值得注意的是,对于 [-128, 127] 之间的数值,自动装箱利用缓存提供内存使用效率。
即,自动装箱对于该范围的数值,得到的包装器类内存地址不变。
例如,
Integer a = 129;
Integer b = 129;
System.out.println(a == b);// output true
实践:
1、自动装箱出现在变量声明中;
2、考虑使用情景之一,需要对基础类型进行比较、类型转换等操作;
3、若需对包装器类进行 == 比较,建议转换为基础类型后,再进行。
为了避免缓存数值范围 [-128, 127] 对 == 比较结果的影响。
Java基础类型自动装箱(autoboxing)的更多相关文章
- Java基础 【自动装箱和拆箱、面试题】
JDK 1.5 (以后的版本)的新特性自动装箱和拆箱 1. 自动装箱:把基本类型转换为包装类类型 int a =10; Integer i = new Integer(a); Integer valu ...
- java基础复习 - 自动装箱
Integer a = 127; // 将整形127装箱对象 Integer b = 127; // 同上 System.out.print( a==b ); // true System.out.p ...
- Java暗箱操作之自动装箱与拆箱
我以前在写Android项目的时候,估计写得最多最熟练的几句话就是: List<Integer> list = new ArrayList<Integer>(); list.a ...
- Java中的自动装箱拆箱
Java中的自动装箱拆箱 一.自动装箱与自动拆箱 自动装箱就是将基本数据类型转换为包装类类型,自动拆箱就是将包装类类型转换为基本数据类型. 1 // 自动装箱 2 Integer total = 90 ...
- 《Java中的自动装箱和拆箱功能.》
//Java中的自动装箱和拆箱功能. class AutoboxingUnboxing { public static void main(String[] args) { //直接把一个基本类型变量 ...
- java 中的自动装箱和拆箱操作
在前面的文章中提到,Java为每种基本数据类型都提供了对应的包装器类型,至于为什么会为每种基本数据类型提供包装器类型在此不进行阐述,有兴趣的朋友可以查阅相关资料.在Java SE5之前,如果要生成一个 ...
- java基础类型的byte为长度
java基础类型的字节长度: 类型 byte数/位数 最大/最小值 byte 1/8 127/-128 short 2/16 32767/-32768 int 4/32 2147483647/-214 ...
- [java基础] java中的自动装箱与自动拆箱
自动装箱的一个例子: Integer i = 1; //实际上是执行了Integer i = Integer.valueOf(1) 自动拆箱的一个例子: Integer a =1; int b = a ...
- 深入剖析Java中的自动装箱和拆箱过程
深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱 ...
随机推荐
- careercup-排序和查找 11.4
11.4 设想你有一个20GB的文件,每一行一个字符串.请说明将如何对这个文件进行排序. 解法: 当面试官给出20GB大小的限制时,实际上在暗示些什么.就此题而言,这表明他们不希望你将数据全部载入内存 ...
- Environment variable:"PATH" 状态 失败
问题截图: 问题内容: 未能满足某些最低安装要求.请复查并修复下表中列出的问题,然后重新检查系统. Checks Environment Variable: "PATH" ...
- JQuery设置input属性(disabled、enabled)
document.getElementById("removeButton").disabled = false; //普通Js写法 $("#removeButton&q ...
- eclipse Ctrl+1 没反应
今天上午写代码,突然发现Ctrl+1没反应了,顿时无语.昨天还好好的,今天就不行了…… 无奈,只好在网上查了查,据说快捷键冲突的原因比较大. 于是我将Ctrl+1换成了Alt+1.在eclipse中测 ...
- WPFX名称空间
1:x名称空间里的成员是专门写给xaml编译器看,用来引导xaml编译器把xaml代码编译成CLR代码的.(x仅仅是xaml的首字母). 2:attribute 是语言层面的东西,是给编译器看的,Pr ...
- [转] jQuery按键响应事件keypress对应的按键编码keycode
原文地址:http://blog.csdn.net/chenhj1988918/article/details/7534922 keypress api 文档:http://api.jquery.c ...
- Mybatis-generator使用和扩展
Mybatis-generator使用和扩展 mybatis-generator使用 pom.xml配置 <plugin> <groupId>org.mybatis.gener ...
- Entity Framework 的事务 DbTransaction
事务代码实现如下: public static void Transaction() { myitEntities entity = null; DbTransaction tran = null; ...
- ubuntu server 安装
http://tigerlchen.iteye.com/blog/1765765 解决CDROM找不到的bug
- Java并发编程二三事
Java并发编程二三事 转自我的Github 近日重新翻了一下<Java Concurrency in Practice>故以此文记之. 我觉得Java的并发可以从下面三个点去理解: * ...