Java基础 【自动装箱和拆箱、面试题】

JDK 1.5 (以后的版本)的新特性自动装箱和拆箱

1. 自动装箱:把基本类型转换为包装类类型
int a =10;
Integer i = new Integer(a);

Integer value = 10;
为什么基本类型就能直接转化为Integer ,Integer 不应该是new出来的吗
内部会自动的 new Integer(10) 自动装箱

2. 自动拆箱: 把包装类型转换为基本类型
Integer value2 = new Integer(120);
int a = value2;
对象赋值给基本数据类型,为什么会不报错,因为内部会调用 value2.intValue() 这种就是自动拆箱

举一反三

Double d1 = 9.14 //内部会自动new一个Double 然后传递进去

new 出来的东西 每个都会分配一个内存地址

拆箱:devaning
装箱:

装箱拆箱面试题: 考点(Integer内部装箱的内部实现)

看程序写结果
1.

Integer value1 = new Integer(97);
Integer value2 = new Integer(97);
System.out.println(value1 == value2);
System.out.println(value.equals(value2)); //这个就是比较值
System.out.println("-------------------");

答案 : false true

2. 自动装箱,如果值一样、地址也一样

Integer value3 = 127; //自动装箱
Integer value4 = 127;
System.out.println(value3 == value4);
System.out.println(value3.equals(value4)); //这个也是比较值

答案:true true

`3.

Integer value5 = 128;
Integer value6 = 128;
System.out.println(value5==value6); //false
System.out.println(value5.equals(value6)); //true

答案: false true

总结: 自动装箱,范围在 -128 ~ 127 【256个数字 】的地址是一样的,其他范围地址不一样
-128 到 127 之间的有个自动装箱的缓存池 如果不在这个范围,就会使用new 新创建

原文地址:https://www.cnblogs.com/kangxinxin/p/9689701.html

时间: 2024-07-31 03:17:07

Java基础 【自动装箱和拆箱、面试题】的相关文章

Java的自动装箱和拆箱

1 public class BoxingDemo { 2 3 public static void main(String[] args) { 4 5 /** 6 * 自动装箱示例: 7 * 基本类型int是不能直接赋值给其包装类对象Integer的,但是这里这条语句可以编译通过 8 * 因为自动装箱原理隐式包含了下面2条语句: 9 * Integer temp = new Integer(1); 10 * int1 = temp; 11 * */ 12 Integer int1 = 1; 1

Java中自动装箱与拆箱详解

在讲装箱与拆箱之前我们要先了解一下这个问题的来源: Java中的类型分为基本类型(Primitive type)和类类型(Class type)两种: 基本类型包括byte型.char型.short型.int型.long型.float型.double型.boolean型八种.基本类型指的是直接包含值得类型,可提供语言级别的支持. 类类型包括Byte.Character.Short.Integer.Long.Float.Double.Boolean.为什么要用类类型呢?原因其实很简单,因为Java

Java基础(35):装箱与拆箱---Java 中基本类型和包装类之间的转换

基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了. 那什么是装箱和拆箱呢?我们分别来看下 装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱 拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱 下面的代码的例子演示了装箱与拆箱的过程: 结果为: 1 public class HelloWorld { 2 pub

了解Java的自动装箱与拆箱

一.简单来说,装箱就是自动将基本数据类型转换成包装器类型:拆箱就是自动将包装器类型转换为基本数据类型. //自动装箱 Integer total = 99; //自动拆箱 int totalprim = total; 需要装箱拆箱的类型有: Integer total = 99;  执行上面那句代码的时候,系统为我们执行了:  Integer total = Integer.valueOf(99); int totalprim = total;  执行上面那句代码的时候,系统为我们执行了:  i

Java的自动装箱和拆箱的简单讲解

 装箱就是把基础类型封装成一个类.比如把int封装成Integer,这时你就不能把他当成一个数了,而是一个类了,对他的操作就需要用它的方法了. 拆箱就是把类转换成基础类型.比如你算个加法什么的是不能用类的,就得把它转换成基本类型,jdk5以后已经可以自动转换了貌似.基本类型你应该懂的吧 (byte,short,int,long,float,double,boolean,char) byte :java.lang.Byte short :java.lang.Short int: java.lang

Java 包装类 自动装箱和拆箱

包装类(Wrapper Class) 包装类是针对于原生数据类型的包装. 因为有8个原生数据类型,所以对应有8个包装类. 所有的包装类(8个)都位于java.lang下. Java中的8个包装类分别是:Byte, Short, Integer, Long, Float, Double, Character, Boolean,它们的使用方式都是一样的,可以实现原生数据类型与包装类型的双向转换. 下面以主要Integer类为例说明. Integer Integer类将int类型的值包装到一个对象中.

Java基础之包装类的自动装箱和拆箱详解

定义 在java中,数据类型可以分为两大类,即基本数据类型和引用数据类型,基本数据类型的数据不是对象,所以对于要将数据类型作为对象来使用的情况,java提供了相对应的包装类.(关于包装类的详细介绍请参看博客Java基础之常用类详解) 本篇博客主要讲述包装类的自动装箱和拆行机制. 所谓装箱,就是把基本数据类型用它们相对应的引用类型包起来,使它们可以具有对象的特质,如我们可以把int类型包装成Integer类型的对象,或者把double包装秤Double,等等. 所谓拆箱,就是和装箱的方向相反,将I

[转]JAVA自动装箱和拆箱

1.Java数据类型 装箱和拆箱之前,我们先来了解一下Java的基本数据类型. 在Java中,数据类型可以分为两大种,Primitive Type(基本类型)和Reference Type(引用类型).基本类型的数值不是对象,不能调用对象的toString().hashCode().getClass().equals()等方法.所以Java提供了针对每种基本类型的包装类型.如下: Java基本数据类型 INDEX 基本类型  大小 数值范围 默认值 包装类型 1 boolean    --- t

java自动装箱与拆箱

基本数据(Primitive)类型的自动装箱(autoboxing).拆箱(unboxing)是J2SE 5.0提供的新功能,跟泛型.变长参数等一样,这也是一颗"语法糖",之前介绍jvm早期优化的时候说过,语法糖对运行期的代码没有任何影响,其目的仅仅是方便程序员使用,所有语法糖编译后都将会还原成基础语法.这次介绍的自动装箱和拆箱也不例外.看下头的例子: public class Demo { public static void main(String[] args) { Intege