Integer的自动拆箱】的更多相关文章

java中为没一种基本类型都提供相应的包装类型. byte,short,char,int,long,float,double和boolean Byte,Short,Character,Integer,Long,Float,Double,Boolean. 自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱.…
public class Test2{ public static void main(String[] args){ Integer a=1; Integer b=2; Integer c=3; Integer d=3; Integer e=321; Integer f=321; Long g=3L; System.out.println(c==d); //true System.out.println(e==f); //false System.out.println(c==(a+b));…
Integer封装与拆箱 简介: 目录: Integer自动封装的陷阱 Integer自动拆箱机制 Integer自动封装的陷阱 public class IntegerDemo { public static void main(String[] args) { Integer a=1000,b=1000; Integer c=100,d=100; System.out.println(a==b);//false System.out.println(c==d);//true } } 我们知道…
Integer a0 = ; Integer a1 = ; Integer b0 = ; Integer b1 = ; ; System.out.println(a0 == a1); >>>> true //Integer 对象-128 ~ 127 会缓存,不会新建对象 所以相等 System.out.println(b0 == b1); >>>> false //对象-128 ~ 127 会缓存 但是之外的数据会重新new System.out.print…
package cn.tedu.demo; /** * @author 赵瑞鑫 E-mail:1922250303@qq.com * @version 1.0 * @创建时间:2020年7月17日 上午9:01:30  * @类说明:自动封箱:把基本数据类型封装为此类型的封装类类型 : 自动拆箱:把对象中的数值转成基本数据类型 */public class Demo1 { public static void main(String[] args) {        // TODO Auto-g…
转载于 http://www.ticmy.com/?p=110 jdk1.5引入了自动装箱(autoboxing)与自动拆箱(unboxing),这方便了集合类以及一些方法的调用,同时也使初学者对其感到非常之困惑.在此,我们来揭开其神秘的面纱. 首先,需要厘清一些概念:1.Integer是一个类,用Integer声明一个变量其是一个对象类型(或者说引用类型):int是基本类型,用int声明的变量是非对象类型,即不能在其上调用方法.2.“==”作用于对象上的时候,其比较的是对象的引用本身的值(或者…
一.关于Integer中常用的方法 package com.bjpowernode.java_learning; ​ public class D77_1_ { public static void main(String[] args) { Integer i1 = new Integer(10); //将Integer类型转换为int类型 int i2 = i1.intValue(); System.out.println(i2); //重要:static int parseInt(Stri…
前言 一开始想学学自动拆箱和自动装箱是被这个名字吸引到,听上去好像很高端的样子,其实自动拆箱.自动装箱是很简单的内容. 自动拆箱和自动装箱 Java为每种基本数据类型都提供了对应的包装器类型.举个例子: public class TestMain { public static void main(String[] args) { Integer i = 10; } } 这个过程中会自动根据数值创建对应的Integer对象,这就是自动装箱.再看另外一段代码: public class TestM…
1.Java数据类型 在介绍Java的自动装箱和拆箱之前,我们先来了解一下Java的基本数据类型. 在Java中,数据类型可以分为两大种,Primitive Type(基本类型)和Reference Type(引用类型).基本类型的数值不是对象,不能调用对象的toString().hashCode().getClass().equals()等方法.所以Java提供了针对每种基本类型的包装类型.如下: Java基本数据类型 INDEX 基本类型  大小 数值范围 默认值 包装类型 1 boolea…
摘自:http://www.codeceo.com/article/java-boxing-unboxing.html Java的四类八种基本数据类型 基本类型 占用空间(Byte) 表示范围 包装器类型 boolean 1/8 true|false Boolean char 2 -128~127 Character byte 1 -128~127 Byte short 2 -2ˆ15~2ˆ15-1 Short int 4 -2ˆ31~2ˆ31-1 Integer long 8 -2ˆ63~2ˆ…
自动装箱(boxing)和自动拆箱(unboxing)   首先了解下Java的四类八种基本数据类型   基本类型 占用空间(Byte) 表示范围 包装器类型 boolean 1/8 true|false Boolean char 2 -128~127 Character byte 1 -128~127 Byte short 2 -2ˆ15~2ˆ15-1 Short int 4 -2ˆ31~2ˆ31-1 Integer long 8 -2ˆ63~2ˆ63-1 Long float 4 -3.40…
自动装箱 java执行Integer i = 100:编译器编译成Integer i = Integer.valueOf(100); Integer i = 100; //编译器编译成Integer i = Integer.valueOf(100); 自动拆箱 java执行 Integer i = 100; int j = i; //编译器编译成int j = i.intValue(); 参考: http://www.cnblogs.com/danne823/archive/2011/04/22…
一.基本类型打包器 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 =…
/** * @描述:自动装箱,自动拆箱 * @date 2017年1月10日下午1:30:01 * 结论:包装类的"=="运算在不遇到算术运算的情况下不会自动拆箱, * 以及他们的equals()方法不处理数据转型的关系 * * equals() 比较的是两个对象的值(内容)是否相同. * "==" 比较的是两个对象的引用(内存地址)是否相同,也用来比较两个基本数据类型的变量值是否相等. * * 对于–128到127(默认是127)之间的值, * Integer.v…
很多时候,会有人问你,你知道什么是包装类吗? 或者高端一点问你你知道,wrapper type,是什么吗? 然后你就懵逼了,学了java很多时候都不知道这是啥. 其实问你的人,可能只是想问你,java面向对象你理解的怎么样. 在java中很多时候我们都说一切皆对象. 但是int,double,总有几个特例告诉你,他不是对象. 但是很多时候我们需要对象,而不是int,但是需要像int一样的对象. 举个例子就是,你需要在List中使用int,但是List只能放对象.类似的问题还有很多哦. 于是jav…
自动装箱的一个例子: Integer i = 1; //实际上是执行了Integer i = Integer.valueOf(1) 自动拆箱的一个例子: Integer a =1; int b = a; //自动拆箱就是从对象中把基本数据取出来 Integer自动拆箱的一个好玩的例子: Integer a = 100; Integer b = 100; System.out.println(a==b); // true Integer c = 200; Integer d = 200; Syst…
JAVA进阶之旅(一)--增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法 学完我们的java之旅,其实收获还是很多的,但是依然还有很多的知识点需要我们的突破,所以写下这个java进阶之旅的系列,这个系列不会说的那么的基础,主要是对一些高级点的功能进行剖析,所以,一起来看看吧! 一.增强for循环 for循环在我们的开发中是非常非常的多的,但是有多少人会用增强for循环?其实还是有很多人会用哈,但是还是有很多人一知半解,我们来看一…
背景 java1.5后引入了自动装箱和自动拆箱的概念 自动拆箱:将引用类型转化为基本数据类型 自动装箱:将基本数据类型装为引用类型 但是实际使用中,什么情况自动拆箱什么情况自动装箱呢? 自动装箱 Integer i = 100; (调用Integer.valueOf(100)) 这里存在一个缓存变量 -128~127 ,如果基本数据类型在此范围内,则使用缓存的对象,否则new Integer(number)idea里面通过配置设置缓存最大值[-server  -XX:AutoBoxCacheMa…
java基本类型介绍 java中,基本数据类型一共有8种,详细信息如下表: 类型 大小 范围 默认值 byte 8 -128 - 127 0 short 16 -32768 - 32768 0 int 32 -2147483648-2147483648 0 long 64 -9233372036854477808-9233372036854477808 0 float 32 -3.40292347E+38-3.40292347E+38 0.0f double 64 -1.797693134862…
一.可变参数 可变参数是jdk1.5新特性 1.1.可变参数的格式 数据类型...变量名 // 数据类型...变量名public static void sum(int...arr){ } 1.2.可变参数要注意的细节 1.如果一个函数的形参上使用上可变参数之后,那么调用该方法的时候可以传递参数也可以不传递参数    2.可变参数实际上是一个数组对象    3.可变参数必须位于形参的最后一个参数    4.一个函数最多只有一个可变参数,因为可变参数要位于形参的最后一个位置上 1.3.例子 方法1…
序. java基本类型介绍 java中,基本数据类型一共有8种,详细信息如下表: 类型 大小 范围 默认值 byte 8 -128 - 127 0 short 16 -32768 - 32768 0 int 32 -2147483648-2147483648 0 long 64 -9233372036854477808-9233372036854477808 0 float 32 -3.40292347E+38-3.40292347E+38 0.0f double 64 -1.797693134…
静态导入用于简化程序对类静态属性和方法的调用. 语法 import static 包名.类名.静态属性|静态方法|* 例如 import static java.lang.System.out import static java.lang.Math.* package cn.itcast.demo; import static java.lang.System.out; import static java.util.Arrays.*; public class Demo1 { public…
本文主要从三个方面着手,第一:简要介绍享元模式.第二:享元模式在基本类型封装类中的运用以Integer为例进行阐述.第三:根据第一.第二的介绍,进而推出java是如何实现自动拆箱与装箱的. 第一:简要介绍享元模式. 享元模式的角色:抽象享元类(FlyWeight).具体享元类(ConcreteFlyWeight).享元工厂类(FlyWeightFactory).客户类(Client,相当于一个测试类) 至于FlyWeight pattern如果直接翻译应译为: 蝇量级模式.从蝇量级我们可以知道共…
自动装箱(boxing)和自动拆箱(unboxing) 首先了解下Java的四类八种基本数据类型   基本类型 占用空间(Byte) 表示范围 包装器类型 boolean 1/8 true|false Boolean char 2 -128~127 Character byte 1 -128~127 Byte short 2 -2ˆ15~2ˆ15-1 Short int 4 -2ˆ31~2ˆ31-1 Integer long 8 -2ˆ63~2ˆ63-1 Long float 4 -3.403E…
一.基本数据类型和包装类 包装类均位于Java.lang包,包装类和基本数据类型的对应关系如下表所示: Primitive-Type   Wrapper-Class        byte            Byte        short           Short        int               Integer        long             Long        float             Float        double    …
自动装箱的定义就是  基本数据类型赋值给包装类型,  拆箱则相反. Integer integer = 122; // 自动装箱 int num = integer; //自动拆箱 想看一下源码是怎么完成自动装箱和拆箱的. 发现第一行代码自动装箱走的方法是 valueOf ,  看图 这一段逻辑判断是, 如果传过来的值在Integer对象的缓存范围内,  就直接返回缓存好了的值, 否则另外新建一个Integer实例. 小结:Integer缓存了一个装有255个数值的Integer数组, 在内部静…
项目中突然报空指针异常 Integer code=null; code=code==null?500:code; 排查发现三元运算符空指针异常,表面上看不出来有什么问题,编译器编译的时候会保证:2边数据类型一致如: String code=true?"":0; 会编译不通过.因为String 和int不是一个类型 按照上面的逻辑Integer是class类型并不是数值类型 编译器应该编译不通过.其实编译之后编译器后的代码是: ccode=code==null?500:code.init…
空指针异常 空指针异常是指java中的异常类.   中文名 空指针异常 外文名 NullPointerException 当应用程序试图在需要对象的地方使用 null 时,抛出该异常.这种情况包括: 调用 null 对象的实例方法. 访问或修改 null 对象的字段. 将 null 作为一个数组,获得其长度. 将 null 作为一个数组,访问或修改其时间片. 将 null 作为 Throwable 值抛出. NPE(java.lang.NullPointerException): 空指针异常.…
首先封装一个基本数据类型int, class P{ private int number; //封装一个私有的->基本数据类型 public P(){} public P(int number){this.number=number;} public int getNumber(){return this.number;} } 测试我们的封装 public class Ert { public static void main(String[] args) { int in=3; P p=new…
基本数据类型转换为引用类型对象 一个自动装箱的例子 Integer i=10; 相当于 Integer i=new Integer(10); 一个自动拆箱的例子 Integer m=10; int n=m; 相当于n=m.intValue(); 枚举类型 所有枚举类型都继承了Enum类 枚举值都是public  static final 的  ,也就是常量,因此枚举值应大写 枚举构造器都是私有化的 //当jvm去加载使用枚举类的时候,会预先创建多个枚举类型的对象供外部使用 public stat…