Java的自动拆/装箱】的更多相关文章

作者:Alvin 关键字:语法糖 类 对象 参考 Java 中的语法糖 语法糖--这一篇全了解 浅谈 Integer 类 什么是Java中的自动拆装箱 深入剖析Java中的装箱和拆箱 前言 我们知道,Java有8中基本数据类型,分别是byte,short,int,long,char,float,double,boolean,但是定义的这些基本数据类型的值只是一个字面量,而字面量的补码是的的确确存储在内存上的一个量,这个量不具有其他的方法属性.但是我们在编程开发中有把一个整型int转换成字符串等的…
顾名思义,自动拆装箱就是将基本类型和包装类进行自动的互相转换. JDK5.0后,将自动装箱/拆箱引Java中. 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中. 自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法. Integer i = 130; //自动装箱 相当于编译器自动作如下编译: Integer i = new Integer(130); 编译通过,但运行报…
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10832303.html 一:基本类型与包装类型     我们知道,Java有8大基本数据类型,4整2浮1符1布. 我们在实际开发中,除了使用到数据的值之外,还会涉及到对数据的操作.根据“面向对象”编程的思想,这些常见的操作被抽象成方法,封装到了一个类中,一个基本数据类型对应一个这样的类,这些类统称为“包装类”. 8大基本类型 分别对应 8个包装类,再加上两个用于高精度运算的包装类,共有10大包装类.分别为…
一.首先需要了解的几个前提: 1.自动装箱过程是通过调用valueOf方法实现的(如Integer.valueOf(10)),而拆箱过程是通过调用包装器的 xxxValue方法实现的(如Integer.intValue(a)). 例如代码: Integer a = 1; a++; 其自动装箱和拆箱的过程如下: 0: iconst_1 1: invokestatic #16 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 4:…
最近在读<深入理解java核心技术>,对于里面比较重要的知识点做一个记录! 众所周知,Java是一个面向对象的语言,而java中的基本数据类型却不是面向对象的!为了解决这个问题,Java为每个基本数据类型引入一个对应的类,称为包装类! byte -- Byte  boolean -- Boolean short -- Short  char -- Character int -- Integer  long -- Long  float -- Float  double -- Double 为…
/ * int 仅仅是一个基本类型.int有对应的类类型,那就是Integer.  * 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型--包装类类型.各个基本类型分配封装与之对应的类类型来对基本类型数据更方便的操作.  * byte         Byte  * short         Short  * int Integer(这个看起来比较特殊)  * long Long  * float          Float  * doubl…
java 中的数据类型分为两大类:值类型(基本数据类型)和引用类型(复合数据类型)  值类型分为 1,整数类型(byte,short,int,long) 2,浮点类型(float,double) 3,布尔类型(boolean) 4,字符类型(char)    栈 引用值类型 除了值类型外就是引用值类型了,引用值类型有1,类类型(class) 2,数组 3,接口类型(interface)     堆 Java中一切都是对象.所有的函数,变量,常量都必须在一个类里定义.这本来很好,很完美的规定.但是…
基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型.它们是我们编程中使用最频繁的类型. Java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化. Java基本类型共有八种,基本类型可以分为三类: 字符类型char 布尔类型boolean 整数类型byte.short.int.long 浮点数类型float.double. Java中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变.…
一.枚举简介 1.什么是枚举? 需要在一定范围内取值,这个值只能是这个范围内中的任意一个 现实场景:交通信号灯,有三种颜色,但是每次只能亮三种颜色里面的任意一个 2.使用一个关键字 enum enum Color3 { RED,GREEN,YELLOW; } *枚举的构造方法也是私有化的 *特殊枚举的操作 **在枚举类里面有构造方法 **在构造方法里面有参数,需要在每个实例上都写参数 **在枚举类里面有抽象方法 **在枚举的每个实例里面都重写这个抽象方法 3.枚举的api的操作 **name()…
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 sta…
我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long, Float, Double, Character, Boolean.关于基本数据类型的介绍可参考Java基础(一) 八大基本数据类型 那么为什么需要包装类? JAVA是面向对象的语言,很多类和方法中的参数都需使用对象,但基本数据类型却不是面向对象的,这就造成了很多不便. 如:List<int>…
出处: 一文读懂什么是Java中的自动拆装箱 本文主要介绍Java中的自动拆箱与自动装箱的有关知识.  基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型.它们是我们编程中使用最频繁的类型. Java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化. Java基本类型共有八种,基本类型可以分为三类: 字符类型 char 布尔类型 boolean 整数类型 byte.short.int.long 浮点数类型 float.doubl…
1.基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型.它们是我们编程中使用最频繁的类型. Java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化. Java基本类型共有八种,基本类型可以分为三类: 字符类型char 布尔类型boolean 整数类型byte.short.int.long 浮点数类型float.double. Java中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改…
一.深入自动拆装箱 1.直接举例: public class D78_AutomaticUnpackingAndPacking{ public static void main(String[] args){ Integer i1 = new Integer(10); Integer i2 = new Integer(10); //这里不会自动进行拆箱 System.out.println(i1==i2);//false //比较两个Integer类型的数据是否相等,不能用“==" //Inte…
介绍 Java 5增加了自动装箱与自动拆箱机制,方便基本类型与包装类型的相互转换操作.(关于基本类型与包装类型之前有记录过https://www.cnblogs.com/xiuzhublog/p/12822045.html) 我们认为包装类是对基本类型的包装,所以,把基本数据类型转换成包装类的过程就是打包装,英文对应于boxing,中文翻译为装箱. 反之,把包装类转换成基本数据类型的过程就是拆包装,英文对应于unboxing,中文翻译为拆箱. 在Java 5之前,如果要将一个int型的值转换成对…
要点摘要 Math: 类中么有构造方法,内部方法是静态的,可以直接类名.方式调用 常用: Math.abs(int a):返回参数绝对值 Math.ceil(double a):返回大于或等于参数的最小double值,等于一个整数 Math.floor(double a):返回小于或等于参数的最大double值,等于一个整数 Math.round(float):按照四舍五入返回最接近参数的int Math.max(int a,int b):返回两个中最大 Math.min(int a,int b…
------- android培训.java培训.期待与您交流! ---------- 首先来看一段代码: Integer x = new Integer(4); Integer y = 4; 在JDK1.5版本后,以上两行代码都能编译通过,那是因为JDK1.5后加入新特性,自动装箱. 第一句代码是正常的创建对象方法,创建了一个Integer包装类对象. 而第二句中,当左边的Interger类型变量指向右边的int基本类型数据时,右边的基本数据类型会自动装箱成Integer对象,即隐式执行了ne…
先看一个简单的例子: public class TestInteger { public static void main(String[] args) { System.out.println("----20----"); littleNum(); System.out.println(); System.out.println("----250----"); bigNum(); } public static void littleNum(){ Integer…
包装类型Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class). 包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示 在这八个类名中,除了Integer和Character类以后,其它六个类的类名和基本数据类型一致,只是类名的第一个字母大写即可. 为什么需要包装类很多人会有…
Integer缓存机制 总结: 1.jdk1.5对Integer新增了缓存机制,范围在-128-127(这个范围的整数值使用频率最高)内的自动装箱返回的是缓存对象,不会new新的对象,所以只要在缓存范围内值相等自动装箱返回的对象一样.jdk1.6后缓存范围的最大值127可以通过设置jvm的启动参数(-XX:AutoBoxCacheMax=size)调整2.Integer的缓存只在自动装箱时有效,使用构造器(new)创建的对象不会触发缓存3.int和Integer比较时不用考虑缓存问题,因为Int…
在perference 加content Assist 可以设置快捷键 透视图与视图 透视图:Debug和java主窗口 视图:每一个小窗口就是视图 高版本的java可运行低版本的java版本 常见的错误:classversionError 一般都是文件编译与系统默认的编译器版本不同导致的. 在配置文件里把java compiler变了,整个工作间都会跟着改变 如何自己配置模板: 在preferences中有一个Editor.下面有一个Template,里面可以设置 提示: 如果在导入工程的时候…
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…
不多说,直接上干货! https://www.nowcoder.com/ta/review-java/review?query=&asc=true&order=&page=5 Java语言支持的8种基本数据类型是:byteshortintlongfloatdoublebooleanchar     自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化.比如:把int转化成Integer,double转化成Double,等等.反之就是自动拆箱. Java支持的数…
题目: Integer i = 42; Long l = 42l; Double d = 42.0; 下面为true的是 A.(i == l) B.(i == d) C.(l == d) D.i.equals(d) E.d.equals(l) F.i.equals(l) G.l.equals(42L) 答案:G 解析:同类型的进行比较,如Integer 与int,Long与long进行==比较时,会自动拆箱:不同类型之间进行比较,如果有一方为非包装类,则会自动拆箱.如果两方都为包装类,则不会拆箱…
1.java的数据类型:基本数据类型(8种)和引用数据类型. 基本数据类型: 类型 boolean byte short char int long float double 位 1 8 16 16 32 64 32 64 字节   1 2 2 4 8 4 8 范围   -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)…
------- android培训.java培训.期待与您交流! ---------- 装箱:把基本数据类型装成java类(被托管?).         拆箱:把java类拆成基本数据类型(取消托管?).         java新版本增加了自动装箱拆箱的特性,使得java基本类和基本数据类型可以无需转换直接参与计算.如:             Integer iObj = 3 //自动装箱.             system.out.println(iObj + 12);//自动拆箱.…
一:静态导入语法:import static 导入类.成员变量|成员方法那么在代码中可以直接使用变量或者方法,而不需要通过类名.来调用 静态导入: import static java.lang.System.out; 那么在代码中直接调用变量: @Test //测试静态导入 public void testStaticImport() { out.println("static import..."); } 二:装箱或者拆箱装箱:将基本数据类型赋值给引用数据类型拆箱:将引用数据类型赋…
可变参数:定义方法的时候不知道该定义多少个参数格式: 修饰符 返回值类型 方法名(数据类型… 变量名){ } 注意: 这里的变量其实是一个数组如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个 package newjdk5; //增强for 即 for each遍历功能对数组集合遍历 public class testCanshu { public static void main(String[] args) { System.out.println(sum(1,2,3,4…
原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 先普及一个基本概念:Java中基本数据类型的装箱和拆箱操作 自动装箱 在JDK5以后,我们可以直接使用Integer num = 2:来进行值的定义,但是你有没有考虑过?Integer是一个对象呀,为什么我可以不实例化对象,就直接来进行Value的定义呢? 一般情况下我们在定义一个对象的时候,顶多赋值为一个null 即空值: 比如:Person pserson = null:但是肯定不可…
转载自:http://www.cnblogs.com/dolphin0520/p/3780005.html 注意:Integer的缓存机制.…