常用类

常用的类分为:包装类、字符串相关的类、时间处理相关类、其他常见的类

包装类(Wrapper Class)

包装类知识点:基本用法、Number类、自动装箱和拆箱、包装类的缓存问题

1. 基本数据类型的包装类

前面的8中基本类型并不是对象,为了将基本类型数据和对象之间实现互相转化,Java为每一个基本类型提供了相应的包装类。

2.包装类的基本知识

Java是面向对象语言,但不是纯面向对象的,因为我们平时用的基本数据类型并不是对象。但是我们在平时应用中需要经常将基本数据转化为对象,以便于操作。

为了解决这个不足,Java在设计类时为每一个基本数据类型都设计了一个对应的类进行代表,这样八个基本数据类型对应的类统称为包装类;

包装类位于Java.lang包中,以下是对应关系:

基本数据类型 包装类
byte Byte
boolean Boolean
short Short
char Character
int Integer
long Long
float Float
double Double

8个基本类型,其中6个都是数字类型(byte/short/int/long/float/double)的,实现于抽象类Number。

Number类是抽象类,因此它的抽象方法,所有子类都需要提供实现。Number类提供了抽象方法:intValue()、longValue()、floatValue()、doubleValue(),意味着所有的"数字型"包装类都可以互相转型。

初识包装类

java 复制代码
public class Test {
    public static void main(String[] args) {
        Integer a = new Integer(50); // java9开始被废弃
        Integer t = Integer.valueOf(50); // 官方推荐写法
    }
}

内存分析:

3. 包装类的用途

  1. 作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如Object\[\]、集合等操作。

  2. 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法(这些操作方法的作用是在基本数据类型、包装类对象、字符串之间提供相互之间的转化!)

4. 包装类的使用

java 复制代码
public class Test {
    public static void main(String[] args) {
        // int -> Integer
        Integer t = Integer.valueOf(50);
        
        // Integer -> int
        int a = t.intValue(); 
        System.out.println(a); // 50
        
        // String -> Integer
        String s = "123";
        Integer s1 = Integer.valueOf(s);
        
        // Integer -> String
        String s2 = s1.toString();
        
        //一些常见int类型相关的常量
        System.out.println("int类型能表示的最小值" + Integer.MIN_VALUE); // -2147483648
        System.out.println("int类型能表示的最大值" + Integer.MAX_VALUE); // 2147483647
    }
}
相关推荐
IT_陈寒3 小时前
Redis持久化这个坑,我爬了一整天才出来
前端·人工智能·后端
无风听海3 小时前
多租户系统中的 OIDC:Discovery 端点与联合登录的深度实践
后端·python·flask
小小前端仔LC3 小时前
Node.js + LangChain + React:搭建个人知识库(六)- “吃什么”项目实战:从700+菜谱入库到Taro H5端JSON渲染
前端·后端
程序员黑豆4 小时前
AI全栈开发之Java:怎么配置Java环境变量
前端·后端·ai编程
苍何4 小时前
一手实测 Claude Fable 5,手搓了个 Obsidian 的 Codex 插件
后端
swipe5 小时前
做多轮对话 Agent,为什么我建议把短期记忆放到 Redis
后端·面试·llm
程序员黑豆5 小时前
AI全栈开发之Java:什么是JDK
前端·后端·ai编程
阿明在折腾6 小时前
从Canvas到AI模型:我在线工具站里的图片处理实战
前端·后端
tyung6 小时前
Go 手写 Wait-Free SPSC 无界队列:无 CAS、无锁、泛型节点池
数据结构·后端·go
Lucien3236 小时前
学完 Spring Boot 再看 FastAPI,我破防了
后端