发布日期:2020-06-25 18:00
包装数据类型与传统数据类型之间的差别
包装数据类型
我们知道Java中有八种基本数据类型,它们对应于八种打包类型。 因此,回想一下,当您在代码中使用基包装数据类型或打包类型时,选择标准是什么? 有没有标准? 今天,让我们来看看包装类型。
基本类型属于原始数据类型,并且原始值存储在变量中。 包装类型是参考数据类型,并且变量存储存储原始值的地址的参考。 让我们不要考虑将内存空间的不同区域用于不同目的的不同用途,将其作为一个整体来考虑,并考虑以下语句的内存分配过程。
其实答案很简单,考虑一下缓存的含义,您可以想到,为了使缓存真正有效,您应该放置一些最常用的数据 在缓存中。 但是,对于小数,选择一个元素数量不受限制的集合。 因此,Java在考虑此问题时可能无法考虑该问题。 应该使用包装数据类型的什么标准来判断,哪些元素应该放置在缓存中,所以我放弃了,只是没有缓存。
方法的返回值取决于它是否可以为null以确定是使用包装器类还是使用基本类。 当方法的返回值不能为null时,建议使用基本类作为返回值。 这样,当调用者获得此方法的返回值时,无需担心它为null。 基本类型在方法内部使用(局部变量)。 在时间效率和效率方面,基本类型优于包装。 因此,在该包装数据类型的方法内,可以尽可能使用基本类型而不使用包装类。
包装器类创建一个对象,该对象具有方法和字段。 对象的调用是通过引用对象的地址,并且该引用存在于堆栈存储器中。 基本类型直接存储在堆内存中,直接存储Value。 另一个区别是包装类是通过引用传递的,而基本类型是通过值传递的。 变量的值存储在堆栈中,而对象存储在堆中。 相比之下,堆栈效率更高,这也是java保留基本类型的原因。 包装数据类型创建的对象可以使用api提供的一些有用方法。 更加强大。
有一个有趣的字段Integer.TYPE Integer关于包装类,例如。 该字段返回后面是对Class对象的引用,Integer.TYPE和int.class表示相同。 顺便说一下,String实际上不是char的纯数组,而是引用类型。 应用程序类型是用户自己定义的某些类,或者Java等提供的某些类通常是使用构造函数构造的。 还有一个常用的引用类型:BigInteger,通常将其当作一个大数字来处理,其字节大小取决于JVM可用的大小。 由于Java中的重载运算符只是+ =和+,因此您无法进行基本包装数据类型之类的操作。 相反,您可以使用BigInteger的函数进行操作。
包装类是具有方法和字段的对象,并且通过引用对象的地址来调用该对象; 基本类型不是包装类型是引用的传递; 基本类型是值的传递。 声明方法不同:基本数据类型不需要new关键字; 打包类型需要new才能在堆内存中分配新内存。
存储位置不同:基本数据类型直接将值保存在值堆栈中; 打包类型是将对象放在堆上,然后通过引用该对象来调用它们。 初始值不同:int的初始值为0,布尔的初始值为false,包装类型的初始值为null。 使用方式不同:直接分配和使用基本包装数据类型; 包装类型用于CoolectionMap等集合中。
基本数据类型通常在堆栈上分配。 如果要在堆上分配它们,则只能使用基本数据类型包装器类。 让我们以Double double为例,基本数据类型包装数据类型可以调用一系列方法。 例如,通常在包装类方法的底层调用常用的力传递。
Java不是纯粹的面向对象语言。 Java是一种面向对象的语言,但是Java的基本数据类型不是面向对象的。 但是,在实际使用中,我们经常需要将基本数据转换为对象以便于操作。 例如:在集合的操作中,这是我们需要将基本数据类型转换为对象的地方。
自动装箱:将基本类型转换为包装类型; 自动拆箱:将包装类型转换为基本类型注意:使用时,Integer x = null; 该代码将出现NullPointerException。 建议在使用前确定它是否为空。
基本类型属于原始数据类型,并且原始值存储在变量中。 包装类型是参考包装数据类型,并且变量存储存储原始值的地址的参考。