常用类

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

包装类(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
    }
}
相关推荐
橙序员小站6 小时前
Agent Skill 是什么?一文讲透 Agent Skill 的设计与实现
前端·后端
怒放吧德德6 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆8 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
开心就好20259 小时前
UniApp开发应用多平台上架全流程:H5小程序iOS和Android
后端·ios
悟空码字10 小时前
告别“屎山代码”:AI 代码整洁器让老项目重获新生
后端·aigc·ai编程
小码哥_常10 小时前
大厂不宠@Transactional,背后藏着啥秘密?
后端
奋斗小强10 小时前
内存危机突围战:从原理辨析到线上实战,彻底搞懂 OOM 与内存泄漏
后端
小码哥_常10 小时前
Spring Boot接口防抖秘籍:告别“手抖”,守护数据一致性
后端
心之语歌10 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
None32111 小时前
【NestJs】基于Redlock装饰器分布式锁设计与实现
后端·node.js