Java开发——18.常用类(包装类,拆箱和装箱;BigInteger+BigDecimal)

简介: Java中只有两种数据类型:基本数据类型和引用数据类型。

Java中只有两种数据类型:基本数据类型和引用数据类型。


包装类:

基本数据类型是不能new对象的,在使用的是时候,只用他们的数值;使用基本数据类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,所以引申出来了包装类,在创建对象的时候使用。


image.png


自动装箱和自动拆箱:

自动装箱:基本数据类型转换为对应的包装类;

自动拆箱:对应的包装类转换为基本数据类型。


在Java中,基本数据类型和其对应的包装类可以实现自动装箱和自动拆箱的效果;


publicstaticvoidmain(String[] args) {
Integerin=123;
System.out.println(in);
intnum=in;
System.out.println(num);
    }


手动装箱和手动拆箱:

手动装箱:基本数据类型通过valueOf(基本数据类型)方法转换为对应的包装类;

手动拆箱:对应的包装类通过xxxValue()方法转换为基本数据类型。


publicstaticvoidmain(String[] args) {
//方法一:使用valueOf(基本数据类型)方法手动装箱Integerinteger=Integer.valueOf(123);
//手动拆箱       inti=integer.intValue();
//方法二:使用有参构造方法直接手动装箱Integerinteger2=newInteger(123456);
//把integer类型的对象,拆箱成为其他的基本数据类型doublev=integer2.doubleValue();
//传入的数字也可以是字符串的形式,但是要注意,不能出现空格等中文字符        Doubledl=Double.valueOf("1245656.9");
System.out.println(integer3);//1245656.9}


常用方法:

image.png


注意事项:

刚学习过手动装箱和手动拆箱,相信已经了解过了其中常用的方法了,但是还是要注意学习它的构造方法;里面也有许多对数值进行操作的方法,像进制转换、比较大小...


BigInteger:包装类型的操作类,类似于基本数据类型的算数运算的Math类中的方法,BigInteger类中也提供了相关操作;

不可变的任意精度整数。

所有操作的行为就好像BigIntegers以二进制补码表示(如Java的原始整数类型)表示。 BigInteger提供了所有Java的原始整数运算符和java.lang.Math中所有相关方法的类比。 此外,BigInteger还提供了模数运算,GCD计算,原始测试,初级生成,位操作以及其他一些其他操作的操作。

API


BigDecimal:包装类型的操作类,主要针对浮点类型;

不变的,任意精度的带符号的十进制数字。

BigDecimal类提供了算术,缩放操作,舍入,比较,散列和格式转换的操作。

API
相关文章
|
9月前
|
Java 开发者
使用BigDecimal类进行精确的加、减、乘、除操作,并比较BigDecimal数组元素大小
总结起来,BigDecimal类是Java中一个强大的工具,用于精确控制浮点数运算,避免了传统浮点类型因精度问题可能造成的错误。在需要精确计算的场景中,如金融系统、科学计算等,BigDecimal是首选。通过以上介绍的方法,可以对BigDecimal进行高效稳定的算数操作及大小比较。
1063 12
|
存储 人工智能 Java
Java 的 BigDecimal 是什么?
`BigDecimal` 是 Java 中用于高精度浮点数运算的类,位于 `java.math` 包。它支持精确的数学运算(加、减、乘、除等),并可设置精度和舍入模式,适用于财务和科学计算场景。其主要特点是高精度、不可变性和灵活的运算控制。相比 `float` 和 `double`,`BigDecimal` 能避免二进制表示带来的精度丢失问题。推荐通过字符串或 `BigDecimal.valueOf` 方法创建对象以确保精度。
316 0
|
Java 编译器 容器
Java——包装类和泛型
包装类是Java中一种特殊类,用于将基本数据类型(如 `int`、`double`、`char` 等)封装成对象。这样做可以利用对象的特性和方法。Java 提供了八种基本数据类型的包装类:`Integer` (`int`)、`Double` (`double`)、`Byte` (`byte`)、`Short` (`short`)、`Long` (`long`)、`Float` (`float`)、`Character` (`char`) 和 `Boolean` (`boolean`)。包装类可以通过 `valueOf()` 方法或自动装箱/拆箱机制创建。
237 9
Java——包装类和泛型
Java项目中高精度数值计算:为何BigDecimal优于Double
在Java项目开发中,涉及金额计算、面积计算等高精度数值操作时,应选择 `BigDecimal` 而非 `Double`。`BigDecimal` 提供任意精度的小数运算、多种舍入模式和良好的可读性,确保计算结果的准确性和可靠性。例如,在金额计算中,`BigDecimal` 可以精确到小数点后两位,而 `Double` 可能因精度问题导致结果不准确。
481 1
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
389 4
|
安全 Java
java BigDecimal 的赋值一个常量
在 Java 中,`BigDecimal` 是一个用于精确计算的类,特别适合处理需要高精度和小数点运算的场景。如果你需要给 `BigDecimal` 赋值一个常量,可以使用其静态方法 `valueOf` 或者直接通过字符串构造函数。 以下是几种常见的方法来给 `BigDecimal` 赋值一个常量: ### 使用 `BigDecimal.valueOf` 这是推荐的方式,因为它可以避免潜在的精度问题。 ```java import java.math.BigDecimal; public class BigDecimalExample { public static void
456 4
|
Java 程序员
【Java基础面试八】、为啥要有包装类?
这篇文章解释了Java中存在包装类的原因:为了让基本数据类型具备对象的特性,使得它们可以被用作对象,以符合Java"一切皆对象"的设计理念,并简化将基本数据类型作为Object类型参数传递的问题。
【Java基础面试八】、为啥要有包装类?
|
Java
BigInteger和BigDecimal18
BigInteger和BigDecimal18
276 3
|
存储 Java 测试技术
Java零基础教学(10):包装类
【9月更文挑战第1天】Java零基础教学篇,手把手实践教学!
250 1
|
Java
【Java】什么是泛型?什么是包装类
【Java】什么是泛型?什么是包装类
185 0
下一篇
开通oss服务