(转载的海子的博文 海子:http://www.cnblogs.com/dolphin0520/) 深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。 以下是本文的目录大纲: 一.什么是装箱?什么是拆箱? 二.装箱和拆箱是如何实现的 三.面试中相关的问题 原文浏览地...
一、什么是自动装箱拆箱 很简单,下面两句代码就可以看到装箱和拆箱过程1//自动装箱2 Integer total = 99; 34//自定拆箱5int totalprim = total; 简单一点说,装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。下面我们来看看需要装箱拆箱的类型有哪些:这个过程是自动执行的,那么我们需要看看它的执行过程:1public class Main { 2 public static void main(String[] args) { 3//自...
一、包装类基本使用package cn.zxg.PackgeUse;/** * 测试包装类 */public class TestWrappedClass { public static void main(String[] args) { //基本数据类型转换成包装类 Integer a=new Integer(3); Integer b=Integer.valueOf(3); //把包装类转换成基本数据类型 int c=b.intValue(); double d=b.doubleValue(); //把字符串转换成包装类对象 Integer e=new Integer...
java自动自动拆装箱最近在看Effective-Java-3rd发现其中介绍一个自动拆装箱影响程序的性能问题。自动拆装箱是java 1.5开始新增的功能,它允许程序员混合基本类型和包装类型,根据需要自动装箱和拆箱。但是在性能上面还是有较大的差别的。看下面的例子:public static void main(String[] args) {long startTime=System.currentTimeMillis();System.out.println(sum());System.out.println("共耗时:"+(System.currentTimeMillis()-...
在讲装箱与拆箱之前我们要先了解一下这个问题的来源: Java中的类型分为基本类型(Primitive type)和类类型(Class type)两种: 基本类型包括byte型、char型、short型、int型、long型、float型、double型、boolean型八种。基本类型指的是直接包含值得类型,可提供语言级别的支持。 类类型包括Byte、Character、Short、Integer、Long、Float、Double、Boolean。为什么要用类类型呢?原因其实很简单,因为Java是一种面向对象的编程...
8种基本数据类型的8种包装类byte Byteshort Shortint Integerlong Longfloat Floatdouble Doublechar Characterboolean BooleanInteger a=127; Integer b=127;//虚拟机自动装箱时进行了特殊处理,-127~128以下的自动取有过的System.out.println(a==b);结果为true如果是Integer a=128; Integer b=128;System.out.println(a==b);结果为falseSystem.out.println(a.equals(b)); 比较的都为内容,因复写过equals结果为true原文:https:/...
包装类Java中一切都是对象,所以很多操作都是针对对象的,Java会把常用的数据类型,自动包装成相应的类的对象进行操作。 jdk1.5之后支持自动的打包与解包常用的数据类型对应的包装类 装箱装箱就是把基本数据类型变为相应类的对象ArrayList list = new ArrayList();//list的各种操作都是针对对象的list.add(5);//5本来是int类型的,现在自动包装成了Integer类的对象拆箱拆箱就是把相对应类的对象变为相应的基本数据类型list.get(0)...
自动拆箱和自动装箱是jdk1.5推出的特性。 那么,什么是自动拆箱和自动装箱呢? 先看例子:Integer i1 = new Integer(10); Integer i2 = new Integer(20);System.out.println(i1); System.out.println(i2); 这里输出的分别是对应的10和20 Integer i3 = 10; Integer i4 = 20;System.out.println(i3); System.out.println(i4); 这里输出的也是10和20 其实自动装箱,就是自动将基本数据类型转换为包装器类型,即java会自动帮我们调用va...
声明:转载自Matrix海 子的博客??自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。一、 什么是装箱?什么是拆箱???在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行:Integer i = new Integer(10); ??而在从Java SE5开始就提供了自动装箱的特性,如果要生成一个数...
对于java1.5引入的自动装箱拆箱,之前只是知道一点点,最近在看一篇博客时发现自己对自动装箱拆箱这个特性了解的太少了,所以今天研究了下这个特性。以下是结合测试代码进行的总结。测试代码: int a = 1;Integer b = 1;Integer c = 1;Integer d = 2;Integer e = 3;Integer f = 128;Integer g = 128;Long h = 3L;Double m = 4.0;Double n = 4.0;Float p = 5f;Float q = 5f;System.out.println("a == b : " + (a == b)); //...
1.java的数据类型:基本数据类型(8种)和引用数据类型。 基本数据类型:类型booleanbyteshortcharintlongfloatdouble位18161632643264字节 1224848范围 -2^7~2^7-1-2^15~2^15-1-2^15~2^15-1-2^31~2^31-1-2^63~2^63-1-2^31~2^31-1-2^63~2^63-1 引用数据类型: (1)类类型:String (2)接口类型 (3)数组类型 2.包装类:由于java是面向对象的,java编程思想一书中说道:一切都是对象,所以形成了包装...
自动装箱 基本类型就自动地封装到与它相同类型的包装中,如: Integer i =100; 本质上是,编译器编译时为我们添加了: Integer i =new Integer(100);自动拆箱 包装类对象自动转换成基本类型数据。如: int a = new Integer(100); 本质上,编译器编译时为我们添加了: int a new Integer(100).intValue();缓存问题:实际上,为了提高效率。在[-128-127]之间,仍然当做基本数据类型来处理。(但是它仍然被封装...
package example6;import static java.lang.System.out;import static java.util.Arrays.sort;import java.util.Arrays;class quietWay{ /*1.静态导入(了解) * 可以在代码里面,直接使用静态导入方法,导入静态方法或常量 * import static 包名; * 比如实现一个计算器,在math类里面 * */ public static void main(String[] args) { out.println("hello"); int[] array= {10,20,5,30,12}; ...
Java中基本数据类型都有相对应的包装类什么是装箱?什么是拆箱?在Java SE5之前,Integer是这样初始化的Integer i = new Integer(10); 而在从Java SE5开始就提供了自动装箱的特性,如果要生成一个数值为10的Integer对象,只需要这样就可以了:Integer i = 10; 这个过程中会自动根据数值创建对应的 Integer对象,这就是装箱。关于boolean占用几个字节,请参考:https://www.jianshu.com/p/2f663dc820d0public static void main(Stri...
自动装箱与缓存现象 有以下代码:1 public class Main {2 public static void main(String[] args) {3 Integer i1 = 127;4 Integer i2 = 127;5 Integer i3 = new Integer(127);6 Integer i4 = new Integer(127);78 System.out.println(i1 == i2);//true9 System.out.println(i3 == i4);//false 10 } 11 }控制台输出:truefalse,我们知道,第3、4行发生了自动装箱,生成了Inte...