Java包装类 基本概述 --- 在某些场合要求所有的数据内容都必须是类类型的对象,而Java语言中有8种基本数据类型声明的变量都不是对象,为了使得这些数据在该场合种能够使用,则需要好进行对象化处理,此时就需要借助包装类将变量包装成对象再进行使用 包装类是为了值类型数据和对象间能互相转换、提供装箱和拆箱机制的类 基本数据类型 | 包装类型 | - | byte | Byte Boolean | Boolean short | Short char | Character int | Integer long | Long float | Float double | Double 自动拆箱与装箱 自动拆箱: 自动进行包装类向基本数据类型的转换 自动装箱: 自动进行基本数据类型向包装类的转换 Integer类型 --- java.lang.Integer 类是Object类的间接子类,用于包装int类型的数据/* * 若尘 */ package static void main(String[] args) { // 使用Integer类中的构造方法来构造对象,该类没有无参构造方法 Integer it = new Integer
三种类型互转 (一): String 转换成 int 类型 调用 八大封装类 parseInt方法 结果可见 输出了223 成功转型 (二): int 转换成 String; 调用String类的 ValueOf方法 结果可见 +1加在了字符串的后面 (三):int 转换成 Integer; 装箱 结果:Integer类的也是 可以+2的 (四):Integer 转换成 int; 拆箱 结果: 依然可以+1 : (五): String 转换成 Integer; 调用Integer类的ValueOf方法 结果: 显然 转型成功 可以在运算 (六): Integer 转换成 String ;调用String类的ValueOf方法 结果: 只是把字符串19添加到了后面
三种类型互转 (一): String 转换成 int 类型 调用 八大封装类 parseInt方法 结果可见 输出了223 成功转型 (二): int 转换成 String; 调用String类的 ValueOf方法 结果可见 +1加在了字符串的后面 (三):int 转换成 Integer; 装箱 结果:Integer类的也是 可以+2的 (四):Integer 转换成 int; 拆箱 结果: 依然可以+1 : (五): String 转换成 Integer; 调用Integer类的ValueOf方法 结果: 显然 转型成功 可以在运算 (六): Integer 转换成 String ;调用String类的ValueOf方法 结果: 只是把字符串19添加到了后面
一、包装类Integer和String互相转换 package com.joshua317; public class Main { public static void main(String [] args) { Integer i = 100; //包装类Integer ---> String //方式一:直接后面跟空字符串 //方式三:调用Integer类的成员方法toString() String str3 = i.toString(); //方式四:调用Integer类的静态方法 (str2); System.out.println(str3); System.out.println(str4); //String ---> 包装类 方式三:调用Integer类的静态方法valueOf()返回一个Integer,然后intValue()拆箱返回int,再自动装箱 Integer i4 = Integer.valueOf
Java Integer包装类缓存机制详解问题引入在解决力扣第76题「最小覆盖子串」时,我使用了Map<Character, Integer>来记录字符串中各字符的出现次数。 Map中存储的值类型是Integer包装类,而非基本类型int。 包装类是Java对基本数据类型的封装。当包装类被加载到内存时,JVM会为其创建一个静态内部缓存类,该缓存保存在堆内存中。 (100);System.out.println(e == f); // true,使用缓存其他包装类的缓存机制在Java中,除了Float和Double之外,其他基本数据类型的包装类都有缓存机制:基本数据类型包装类型缓存范围 理解这一机制有助于我们:避免在对象比较时出现逻辑错误更好地理解自动装箱和拆箱的底层原理在实际开发中编写更加健壮的代码记住:在比较包装类对象时,使用equals()方法是最安全的选择!
今天我们将深入解析 Java 中的 Integer 类,它是 int 类型的包装类,类似于 int 的“增强版”,但更复杂且具备更多功能。 以 Integer 为例 Integer 类是 Java 中 int 的包装类,它提供了许多有用的方法,比如转换、比较、解析等。它属于 Java 类库中的 java.lang 包。 当你将基本数据类型赋值给包装类时,Java 会自动将其转换为相应的包装类对象。例如,int 可以自动转换为 Integer。 小结 Java 中的 Integer 类是 int 的包装类,它为基本数据类型 int 提供了更多的功能和灵活性,尤其是在需要对象的场合。 希望通过本篇文章,你对 Java 中的 Integer 包装类有了更全面的理解。如果你对其他 Java 包装类有兴趣,也可以继续探索它们的特性和应用。
Integer i1 = 100; Integer i2 = 100; Integer i3 = 200; Integer i4 = 200; 因为我们使用类包装类,那么有关 int 的包装类肯定在这里有一个诡异的地方,这个诡异的地方就在于: 在通过 valueOf 方法创建 Integer 对象的时候,如果数值在 [-128,127] 之间, 便返回指向IntegerCache.cache中已经存在的对象的引用;否则创建一个新的Integer对象。 https://www.ossez.com/t/java-integer/13782
看以下代码以及执行结果: public static void main(String[] args) { Integer a = 2; Integer b = 2; Integer c = 222; Integer d = 222; System.out.println(a == b); System.out.println 这是因为Integer类源码中有一个IntegerCache,这一个私有的内部类。这个类缓存了-128到 127之间数字的包装类。 需要记住它把一些数字的包装类提前缓存了,如果判断成立就把缓存中的那个包装类返回,如果不则new一个新的。 ? 可以看到判断缓存中是否存在,不存在new一个返回。 而我们 上边进行 = 和 == 的过程其实就是 java编译器把原始类行自动转换为封装类型的过程称之为**自动装箱**,相当于调用了上边所说的valueOf()方法。
1.什么是包装类 把基本数据类型包装成一个对象,以面向对象的思想来使用这些类型 基本数据类型 对应的包装类 byte Byte short Short int Integer long Long float Float double Double Char Character boolean Boolean 用包装类比起基本类型它是以类创建对象的形式,所以它有更多的功能性有很多方法可用 2.装箱操作 装箱就是把基本数据类型转为包装类,以整型为例 int a = 5; Integer b = new Integer(a);//这是第一种方法 Integer c=Integer.valueOf(a); = Integer.valueOf(5);//a和b指向同一个对象 3.拆箱操作 与之相反,前面是将基本类型转个包装类型,现在是将包装类型转给基本类型 Integer a = new Integer(5 () 5.String与基本类型,包装类型的相互转换 String转包 Integer a = new Integer("123"); Double b = new Double("12.3"); 包装转
(二):把非字符串的转换成字符串 调用String类的ValueOf方法 会输出“我是一个vip客户 是因为重写了toString方法” (三): 将字符串转换成int Double类型 字符串不能是中文汉字
基本类型包装类的概述 A:为什么会有基本类型包装类 * 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。 * C:基本类型和包装类的对应 byte Byte short Short int Integer long 类的概述和构造方法 A:Integer类概述 * 通过JDK提供的API,查看Integer类的说明 * Integer 类在对象中包装了一个基本类型 int 的值, * 该类提供了多个方法,能在 int * C:基本类型和包装类的对应 * byte Byte short Short int Integer long Long float Float double Double char (60));//转换成十六进制 integer(); } /* * A:Integer类概述 * 通过JDK提供的API,查看Integer类的说明 * Integer 类在对象中包装了一个基本类型
看以下代码以及执行结果: public static void main(String[] args) { Integer a = 2; Integer b = 2; Integer c = 222; Integer d = 222; System.out.println(a == b); System.out.println 这是因为Integer类源码中有一个IntegerCache,这一个私有的内部类。这个类缓存了-128到 127之间数字的包装类。 需要记住它把一些数字的包装类提前缓存了,如果判断成立就把缓存中的那个包装类返回,如果不则new一个新的。 [在这里插入图片描述] 可以看到判断缓存中是否存在,不存在new一个返回。 而我们 上边进行 = 和 == 的过程其实就是 java编译器把原始类行自动转换为封装类型的过程称之为自动装箱,相当于调用了上边所说的valueOf()方法。
包装类及其作用 因为 Java 的设计理念是一切皆是对象,在很多情况下,需要以对象的形式操作,比如 hashCode() 获取哈希值,或者 getClass() 获取类等。 包装类的作用 在 Java 中每个基本数据类型都对应了一个包装类,而 int 对应的包装类就是 Integer,包装类的存在解决了基本数据类型无法做到的事情泛型类型参数、序列化、类型转换、高频区间数据缓存等问题 Boolean int 和 Integer 的区别 int 和 Integer的区别主要体现在以下几个方面: 数据类型不同:int 是基础数据类型,而 Integer 是包装数据类型; 默认值不同: 总结 Integer 是 int 的包装类,它们的区别主要体现在 5 个方面:数据类型不同、默认值不同、内存中存储的方式不同、实例化方式不同以及变量的比较方式不同。 包装类的存在解决了基本数据类型无法做到的事情泛型类型参数、序列化、类型转换、高频区间数据缓存等问题。 参考 & 鸣谢 《码出高效:Java开发手册》
1、Integer 类简介 首先我们大致看一下Integer是什么,Integer 类在JDK1.0的时候就有了,它是一个类,是 int 基本数据类型的封装类。 ? 基本API如下: ? ? int 包装类,int 是八大基本数据类型之一(byte,char,short,int,long,float,double,boolean) ②、Integer 是类,默认值为null,int是基本数据类型 ①、自动装箱 一般我们创建一个类的时候是通过new关键字,比如: Object obj = new Object(); 但是对于 Integer 类,我们却可以这样: Integer a = 128 ,然后被解析成Integer类。 我们进入到Integer 类的valueOf()方法: ?
包装类是一个类,这样Java就可以在包装类中提供常用的方法等供我们使用。 基本数据类型和对应包装类的对应关系为: 基本数据类型 包装类 byte Byte boolean Boolean short Short char Character int Integer long Long float Float double Double 包装类的功能基本类似本文就以Integer为例子演示。 主要是让基本数据类和对应的包装类进行自动的转换,方便我们的使用。 自动装箱 自动装箱就是基本数据类型可以自动转换为对应的包装类。 例如: Integer i = new Integer(10); int num = i; 原理 自动装箱其实是通过包装类的静态方法valueOf来实现的转换。
包装类 包装类与基本数据类型 装箱与拆箱 装箱 装箱:把基本数据类型转换成包装类 自动装箱 int a1=10; Integer a2=a1; 手动装箱 Integer a3=new Integer (a2); 测试结果 int类型变量a1=10 Integer类型对象a2=10 Integer类型对象a3=10 拆箱 拆箱:把包装类转换成基本数据类型 自动拆箱 int a4=a2; 手动拆箱 int a5=a2.intValue(); 测试结果 Integer类型对象a4=10 自动拆箱后:int类型a4=10 手动拆箱后:int类型a5=10 基本数据类型与包装类的比较 在包装类与基本数据类型的使用 ); 测试 int类型转换为String类型对象t2=2 字符串转换为基本数据类型 通过包装类prase int t3=Integer.parseInt(t2); 通过包装类valueOf,先将字符串转换为包装类 ,因此每一种数据类型都有对应的包装类 可以通过装箱和拆箱的操作来实现包装类与基本数据类型的转换,同时也可以借由包装类来完成基本数据类型和字符串的转换
Java 基本数据的包装类 基本数据类型包装类的定义: Java在设计之初的设计原则就是:“一切皆对象”,一切的操作都要求用对象的形式进行表述。 temp * 2 ) ; } } Java为了方便用户使用,专门提供了一组包装类; 基本类型:byde(Byte) short(Short) int(Integer) (Object直接子类):Character , Boolean 数值型包装类(Number直接子类):Byte , Short , Integer , Long , Float Number是一个抽象类 ; 每个包装类的构造方法,都可以接收各自的数据类型的变量 ·拆箱操作:从包装类当中取出被包装的数据; 利用Number System.out.println( temp * 2 ) ; } }//将上一个MyInt类,变为了Integer系统包装类 public
POJO( Plain Ordinary Java Object):在本手册中, POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。 注意超过2个参数的查询封装,禁止使用Map类来传输。
今天带来的是Integer,想必大家都不会陌生,下面会大家从属性、内部类、好玩的几个方法入手,来简单解析下Integer这个类。 IntegerCache: 三个属性: int low = -128; int high; // 可从外部传入 默认是127 Integer cache[]; 然后有个静态代码块,在类加载的时候运行: i1 = 127; Integer i2 = 127; Integer i3 = 128; Integer i4 = 128; // 取缓存了 System.out.println(i1 == i2) ;// true // 没得缓存取 System.out.println(i3 == i4);// false 下面就开始介绍一些好玩的方法啦: valueOf() // 返回数值i包装类型 publicstatic (i); } 由此可见以下代码也成立: Integer i1 = Integer.valueOf(127); Integer i2 = Integer.valueOf(127); Integer i3
参考链接: Java包装器Wrapper类 【概述】 由于 Java 中的八种基本数据类型不面向对象,为了使用方便,为每个基本数据类型设计了一个对应的类,这样八种基本数据类型对应的类统称为包装类(Wrapper 基本数据类型包装类intBolleanbyteByteshortShortlongLongfloatFloatdoubleDoublebooleanBooleancharCharacter 包装类的用途主要为以下两种 类】 Integer 类、Long 类、Short 类、Byte 类都是对整数进行操作,包含的方法基本相同,区别只是表示的范围不同,以下以 Integer 类介绍整数包装类。 类、Float 类都是对小数进行操作,包含的方法基本相同,区别只是表示的范围不同,以下以 Double 类介绍小数包装类。 //自动装箱,实际上执行了 Integer a=Integer.valueOf(5) Integer a=5; //自动拆箱,实际上执行了 int b=a.intValue() int b=a; 【包装类