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
相关文章
|
21小时前
|
存储 Java ice
【Java开发指南 | 第十六篇】Java数组及Arrays类
【Java开发指南 | 第十六篇】Java数组及Arrays类
8 3
|
21小时前
|
Java 编译器 ice
【Java开发指南 | 第十五篇】Java Character 类、String 类
【Java开发指南 | 第十五篇】Java Character 类、String 类
8 1
|
22小时前
|
Java 编译器
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
9 4
|
2天前
|
安全 Java 数据安全/隐私保护
Java一分钟之-Java反射机制:动态操作类与对象
【5月更文挑战第12天】本文介绍了Java反射机制的基本用法,包括获取Class对象、创建对象、访问字段和调用方法。同时,讨论了常见的问题和易错点,如忽略访问权限检查、未捕获异常以及性能损耗,并提供了相应的避免策略。理解反射的工作原理和合理使用有助于提升代码灵活性,但需注意其带来的安全风险和性能影响。
16 4
|
2天前
|
安全 Java 调度
Java一分钟:多线程编程初步:Thread类与Runnable接口
【5月更文挑战第11天】本文介绍了Java中创建线程的两种方式:继承Thread类和实现Runnable接口,并讨论了多线程编程中的常见问题,如资源浪费、线程安全、死锁和优先级问题,提出了解决策略。示例展示了线程通信的生产者-消费者模型,强调理解和掌握线程操作对编写高效并发程序的重要性。
42 3
|
3天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
3天前
|
Java
【JAVA基础篇教学】第二篇:Java包装类
【JAVA基础篇教学】第二篇:Java包装类
|
4天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
|
4天前
|
Java 编译器 开发者
Java一分钟之-继承:复用与扩展类的特性
【5月更文挑战第9天】本文探讨了Java中的继承机制,通过实例展示了如何使用`extends`创建子类继承父类的属性和方法。文章列举了常见问题和易错点,如构造器调用、方法覆盖、访问权限和类型转换,并提供了解决方案。建议深入理解继承原理,谨慎设计类结构,利用抽象类和接口以提高代码复用和扩展性。正确应用继承能构建更清晰、灵活的代码结构,提升面向对象设计能力。
9 0
|
4天前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
15 0