【前端学java】java中的包装类(12)

简介: 【8月更文挑战第10天】java中的包装类

对于包装类,对于前端来说是一个比较陌生的概念。没关系,在学习包装类前,我们先复习一下java中的数据类型。

数据类型

java中,数据类型主要分为基本数据类型和引用数据类型

基本数据类型 引用数据类型
整形(整数) byte、short、int、long String 表示字符串
浮点型数据类型(小数) float、double Array 表示数组
字符型数据类型 char Class 表示类类型
布尔型数据类型 boolean Interface、Enum 表示接口类型及表示枚举类

java中,引用数据类型都继承自Object类,所有其他的类都直接或间接地继承自Object类。

这意味着,引用数据类型都可以使用Object类上的方法:

public class Bz {
   
    public static void main(String[] args) {
   
        String name = "shixaioshi";
        System.out.println(name.toString());
    }
}

如上述代码,String类型的数据可以使用Object类上的toString()方法。

基本数据类型并不是一个类, 没有属性或对象,导致其功能非常简单和单薄。使用包装类能完美的解决这个问题。

包装类

什么是包装类

Java中的包装类是一种特殊的类,用于将基本数据类型封装为对象。每个基本数据类型都有一个对应的包装类。
包装类使得基本数据类型可以像对象一样使用,提供了更多的方法功能
Java中的包装类包括:

  • Integer(对应int)
  • Double(对应double)
  • Float(对应float)
  • Long(对应long)
  • Short(对应short)
  • Byte(对应byte)
  • Character(对应char)
  • Boolean(对应boolean)

我们来看一个简单demo

int num = 10;  
Integer numObj = Integer.valueOf(num);
  • Integer.valueOf() 方法是 Java 中 Integer 包装类的一个静态方法,用于将基本数据类型 int 转换为 Integer 类型的对象。
  • 在上述代码中,Integer.valueOf(num) 将 int 类型的 num 转换为 Integer 类型的对象 numObj。

自动装箱与拆箱

通过上述代码,我们可以知道将一个int类型的数据转换成integer类型需要使用Integer上的valueOf方法。这样的转换是比较麻烦的。
我们可以使用java中的自动装箱来简化这一操作。

Integer num = 100; // 自动装箱,将int类型的100转换为Integer对象
  • 自动装箱是指将基本数据类型自动转换为对应的包装类对象。

相应的,自动拆箱的概念也显而易见

Integer numObj = Integer.valueOf(10);  
int num = numObj; // 自动拆箱,将Integer对象转换为int类型
  • 自动拆箱是指将包装类对象自动转换为对应的基本数据类型

自动装箱和拆箱机制使得代码更加简洁和易于维护,避免了显式地进行基本数据类型和对象之间的转换操作。

包装类有哪些方法

现在,我们应该已经熟悉了包装类是什么以及它的作用了,那包装类有哪些方法呢?

注:以下内容我们了解即可,不用记

Integer包装类

  1. parseInt(String s, int radix):返回与调用该方法的数值字符串相应的整型(int)值。
  2. parseInt(String s):与上面的方法类似,但是指定radix为10。
  3. valueOf(int i):返回一个新的Integer对象,其值为指定的int值。
  4. valueOf(String s):返回一个新的Integer对象,其值由字符串s表示的整数值决定。
  5. getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):将Integer对象的字符序列的一部分复制到给定的字符数组中。
  6. compare(Integer anotherInteger):比较两个Integer对象。
  7. isDigit(char ch):判断指定的字符是否是数字字符。
  8. isLetter(char ch):判断指定的字符是否是字母字符。
  9. isWhitespace(char ch):判断指定的字符是否是空格字符。

    Double包装类

  10. doubleValue(): 返回Double对象的双精度数值。

  11. intValue(): 返回Double对象的整数部分。
  12. longValue(): 返回Double对象的长整数值。
  13. floatValue(): 返回Double对象的单精度浮点数。
  14. byteValue(): 返回Double对象的字节表示。

Float包装类

  1. intValue(): 返回Float对象的整数部分。
  2. longValue(): 返回Float对象的长整数值。
  3. doubleValue(): 返回Float对象的双精度数值。
  4. shortValue(): 返回Float对象的短整数值。
  5. byteValue(): 返回Float对象的字节表示。
  6. compareTo(Float anotherFloat): 在数值上比较两个Float对象。如果两个对象的值相等则返回0,如果调用对象小于另一个对象则返回负数,如果调用对象大于另一个对象则返回正数。
  7. equals(Object obj): 判断两个Float对象是否相等。
  8. valueOf(float value): 返回一个新的Float对象,它表示基本的float参数。
  9. valueOf(String s): 返回一个新的Float对象,它表示String参数所指示的float值。
  10. parseFloat(String s): 将一个String类型的变量作为参数解析为Float对象。

    Long包装类

  11. longValue(): 返回Long对象的long数值。

  12. intValue(): 返回Long对象的整数部分。
  13. shortValue(): 返回Long对象的短整数值。
  14. byteValue(): 返回Long对象的字节表示。
  15. doubleValue(): 返回Long对象的双精度数值。
  16. floatValue(): 返回Long对象的单精度浮点数。
  17. equals(Object obj): 比较两个Long对象是否相等。
  18. hashCode(): 返回Long对象的哈希码值。
  19. toString(): 返回Long对象的字符串表示。
  20. valueOf(String s): 将一个String类型的变量作为参数转换为一个Long对象。

其余包装类

其余包装类的方法大同小异,就不一一列举了。等我们真正用到的时候在一点点学习。

相关文章
|
5月前
|
前端开发 关系型数据库 MySQL
【前端学java】MySQL数据库的本地安装
【8月更文挑战第12天】MySQL数据库的本地安装
53 3
|
5月前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(完结)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!(完结)
46 0
|
2月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
78 4
|
4月前
|
Java 编译器 容器
Java——包装类和泛型
包装类是Java中一种特殊类,用于将基本数据类型(如 `int`、`double`、`char` 等)封装成对象。这样做可以利用对象的特性和方法。Java 提供了八种基本数据类型的包装类:`Integer` (`int`)、`Double` (`double`)、`Byte` (`byte`)、`Short` (`short`)、`Long` (`long`)、`Float` (`float`)、`Character` (`char`) 和 `Boolean` (`boolean`)。包装类可以通过 `valueOf()` 方法或自动装箱/拆箱机制创建。
49 9
Java——包装类和泛型
|
5月前
|
Java 程序员
【Java基础面试八】、为啥要有包装类?
这篇文章解释了Java中存在包装类的原因:为了让基本数据类型具备对象的特性,使得它们可以被用作对象,以符合Java"一切皆对象"的设计理念,并简化将基本数据类型作为Object类型参数传递的问题。
【Java基础面试八】、为啥要有包装类?
|
3月前
|
Java
【Java】什么是泛型?什么是包装类
【Java】什么是泛型?什么是包装类
28 0
|
5月前
|
开发框架 前端开发 Java
【前端学java】SpringBootWeb极速入门-实现一个简单的web页面01
【8月更文挑战第12天】SpringBootWeb极速入门-实现一个简单的web页面01
89 3
|
5月前
|
设计模式 前端开发 Java
【前端学java】SpringBootWeb极速入门-分层解耦(03)
【8月更文挑战第13天】SpringBootWeb极速入门-分层解耦(03)
30 2
|
5月前
|
前端开发 Java 编译器
【前端学java】如何从前端视角快速学习Maven
【8月更文挑战第12天】如何从前端视角快速学习Maven
71 2
【前端学java】如何从前端视角快速学习Maven
|
5月前
|
前端开发 Java Maven
【前端学java】全网最详细的maven安装与IDEA集成教程!
【8月更文挑战第12天】全网最详细的maven安装与IDEA集成教程!
116 2
【前端学java】全网最详细的maven安装与IDEA集成教程!