java 1.5 自动拆箱和装箱的注意事项

背景

java1.5后引入了自动装箱和自动拆箱的概念

自动拆箱:将引用类型转化为基本数据类型

自动装箱:将基本数据类型装为引用类型

但是实际使用中,什么情况自动拆箱什么情况自动装箱呢?

自动装箱

Integer i = 100;   (调用Integer.valueOf(100))  这里存在一个缓存变量  -128~127 ,如果基本数据类型在此范围内,则使用缓存的对象,否则new Integer(number)

自动拆箱

//第一种情况
Integer i = 100;
int x = i;   (调用 i.initValue())
//第二种情况
Integer  i = 100;
int x = 100;
System.out.println(i == 100)

自动填坑

---------1-----------
Integer a = 100;
Integer b = 100;
a == b   //结果是true
----------2----------
Integer a = 200;
Integer b = 200;
a == b   //结果是false    包装类型的比较,用equals()
-----------3---------
Integer a = 200;
int b = 200;
a == b   //结果是true
-----------4---------
Integer a = 200;
int b = 200;
a.equals(b)   //结果是true
------------5--------
Long  a = 200;
int b = 200;
a.equals(b)   //结果是false   如果类型不同一定为false

原文地址:https://www.cnblogs.com/shuaiandjun/p/10017512.html

时间: 2024-11-03 13:27:12

java 1.5 自动拆箱和装箱的注意事项的相关文章

java学习笔记——自动拆箱装箱(Autoboxing&Unboxing)

一.基本类型打包器 1.基本类型:long.int.double.float.boolean 2.类类型:Long.Integer.Double.Float.Boolean 区别:基本类型效率更高,类类型的对象却可以携带更多的信息. public class TestInteger01 { public static void main(String[] args) { int a = 10; int b = 20; Integer A = new Integer(a); Integer B =

Java的自动拆箱和装箱

Java 1.5中引入了自动装箱和拆箱机制 自动装箱:(看代码) <span style="font-family:SimSun;font-size:18px;color:#000000;">//自动装箱:把基本类型用它们所对应的引用类型包装起来,使它们具有对象的属性 Integer integer_a = 8; </span> 自动拆箱:(看代码) <span style="font-family:SimSun;font-size:18px;c

JAVA高级特性--自动拆箱-装箱,枚举类型

基本数据类型转换为引用类型对象 一个自动装箱的例子 Integer i=10; 相当于 Integer i=new Integer(10); 一个自动拆箱的例子 Integer m=10; int n=m; 相当于n=m.intValue(); 枚举类型 所有枚举类型都继承了Enum类 枚举值都是public  static final 的  ,也就是常量,因此枚举值应大写 枚举构造器都是私有化的 //当jvm去加载使用枚举类的时候,会预先创建多个枚举类型的对象供外部使用 public stat

自动拆箱,装箱?

自动装箱和自动拆箱是简化了基本数据类型和相对应对象的转化步骤(由java编译器处理) 例:Integer  a=1;//这就是一个自动装箱,如果没有自动装箱的话,需要这样Integer  a=new Integer(1)   int b=a;//这就是一个自动拆箱,如果没有自动拆箱的话,需要这样:int b=a.intValue()

11、自动拆箱和装箱

什么是自动拆箱和自动装箱? //自动装箱:把基本类型转换为包装类类型 Integer s1 = 123; //自动拆箱:把包装类类型转换为基本类型 Integer s2 = new Integer(10); int i2 = s2; 以上特性是jdk5中加入的,也就是说在jdk5版本之前是不支持自动装箱和自动拆箱的. 注意:在判断两个Integer类型是否相等时,要使用equals方法,不能使用"==",Integer已经重写了Object中的equals方法. Integer s2

java 自动拆箱与装箱(基本数据类型与引用类型)

(本文章不为原创文章,摘抄,忘记了出处,抱歉) 1.Java数据类型 在介绍java的自动装箱和拆箱之前,我们先来了解一下Java的基本数据类型. 在Java中,数据类型可以分为两大种,Primitive Type(基本类型)和Reference Type(引用类型).基本类型的数值不是对象,不能调用对象的toString(). hashCode().getClass().equals()等方法.所以Java提供了针对每种基本类型的包装类型.如下: INDEX 基本类型 大小 数值范围 默认值

java Integer类以及拆箱和装箱

package com.ilaw.boson.controller; public class Demo { public static void main(String[] args) { Integer a = new Integer(2000); int b =2000; Integer c =b; System.out.println(a == b);//true,Integer和int进行操作的时候,对a进行拆箱处理 System.out.println(b == c);//true,

包装类 拆箱和装箱的注意事项

public static void main(String[] args) { Integer a=1000; Integer b=1000; System.out.println(a==b);//false System.out.println(a.equals(b));//true // System.out.println("###############"); /*Integer c=127; Integer d=127;*/ /*System.out.println(c==

Java知多少(24)包装类、拆箱和装箱详解

虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性.没有方法可调用. 沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单.有效地进行常规数据处理. 这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了 Object 类的特性,要转换为 String 类型(经常有这种需要)时只要简单调用 Object 类中定义的toString()即可,而基本数据类型转换为 String 类型则要麻烦得