JavaSE——常用API进阶一(2/3)-Objects类(equals方法、isNull方法、nonNull方法)、包装类(介绍、包装方法及自动装拆箱、其他常见操作)

简介: JavaSE——常用API进阶一(2/3)-Objects类(equals方法、isNull方法、nonNull方法)、包装类(介绍、包装方法及自动装拆箱、其他常见操作)

前面我们重写equals方法的时候,发现比较两个对象是否相等,用的是objects的equals方法,而不是用对象自己的equals方法来比较:


这是为什么呢?

接下来就来学习一下Objects类的相关知识。

Objects

  • Objects是一个工具类,提供了很多操作对象的静态方法给我们使用。

Objects类的常见方法

图片.png

equals方法

public class Test {
    public static void main(String[] args) throws CloneNotSupportedException {
        String s1 = null;
        String s2 = "hello";
 
        //如果使用Object父类的equals方法,会因为调用了空地址而报错
        //System.out.println(s1.equals(s2));
        //所以就需要用Objects工具类的equals
        System.out.println(Objects.equals(s1, s2));
 
    }
}

运行结果:


其源码:(按住Ctrl键+鼠标左键点击目标方法)


下面两个方法的用法都比较简单直接:

isNull方法

System.out.println(Objects.isNull(s1)); //true
//效果相当于下面这句
System.out.println(s1 == null);//true
 
System.out.println(Objects.isNull(s2)); //false
System.out.println(s2 == null);//false

运行结果:


nonNull方法

System.out.println(Objects.nonNull(s2)); //true
System.out.println(Objects.nonNull(s1)); //false

运行结果:


包装类

介绍

为什么要有包装类?

对于基本类型,它们都不是对象;但是如果在泛型中我们需要用到这些基本类型的数据,而泛型又只能传入引用数据类型,这个时候包装类就发挥了作用了。


  • 包装类就是把基本类型的数据包装成对象。
基本数据类型 对应的包装类(引用数据类型)
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean

接下来以Integer为例,展示一下基本类型的数据包装成对象的方法:

包装方法及自动装拆箱

基本类型的数据包装成对象的方法
public Integer(int value)  已过时
public static Integer valueOf(int i)   


具体用法:

public class Test {
    public static void main(String[] args) {
//        Integer a1 = new Integer(12); //已过时
        Integer a2 = Integer.valueOf(12);
        System.out.println(a2);
    }
}

运行结果:


对于包装类来说,是可以自动装箱和拆箱的,

  • 自动装箱:基本数据类型可以自动转换为包装类型。
  • 自动拆箱:包装类型可以自动转换为基本数据类型。
//自动装箱
Integer a3 = 12;
 
//自动拆箱
int a4 = a3;

在泛型或者集合中应用:

public class Test {
    public static void main(String[] args) {
 
        //ArrayList<int> list = new ArrayList<int>(); //不支持基本数据类型
        ArrayList<Integer> list = new ArrayList<>();
        list.add(12); //自动装箱
        list.add(13);//自动装箱
        int rs = list.get(1); //自动拆箱
        System.out.println(rs);
    }
}

运行结果:


其他常见操作

  • 可以把基本类型的数据转换成字符串类型。

public static String toString(double d)

public String toString()

  • 可以把字符串类型的数值转换成数值本身对应的数据类型。

public static int parseInt(String s)

public static Integer valueOf(String s)

具体用法:

把基本类型的数据转换成字符串类型

public class Test {
    public static void main(String[] args) {
 
        //1.把基本类型的数据转换成字符串
        //第一种写法
        Integer a = 23;
        String rs1 = Integer.toString(a); //转换成 “23”
        System.out.println(rs1 + 1); //字符串拼接,结果为231
 
        System.out.println();
 
        //第二种写法
        String rs2 = a.toString();
        System.out.println(rs2 + 1); //结果一样为231
 
        System.out.println();
 
        //第三种
        String rs3 = a + "";  //自动转换类型
        System.out.println(rs3 + 1);
    }
}

运行结果:


把字符串类型的数值转换成数值本身对应的数据类型

public class Test {
    public static void main(String[] args) {
 
        //2.把字符串类型的数值转换成对应的基本类型
        String ageStr = "29";
        //int ageI = Integer.parseInt(ageStr); //29
        //更建议使用下面这种,用的时候不需要多记一个方法
        int ageI = Integer.valueOf(ageStr); //29
        System.out.println(ageI + 1); // 30
 
        System.out.println();
 
        String scoreStr = "99.5";
       // double score = Double.parseDouble(scoreStr); //99.5
        //同样的,建议使用下面这种方法
        double score = Double.valueOf(scoreStr);//99.5
        System.out.println(score + 0.5);
    }
}

运行结果:



END



目录
相关文章
|
29天前
|
人工智能 API 开发者
图文教程:阿里云百炼API-KEY获取方法,亲测全流程
本文详细介绍了如何获取阿里云百炼API-KEY,包含完整流程与截图指引。需先开通百炼平台及大模型服务,再通过控制台创建并复制API-KEY。目前平台提供千万tokens免费额度,适合开发者快速上手使用。
527 5
|
2月前
|
API 开发工具 开发者
客流类API实测:门店到访客群画像数据
本文介绍了一个实用的API——“门店到访客群画像分布”,适用于线下实体门店进行客群画像分析。该API支持多种画像维度,如性别、年龄、职业、消费偏好等,帮助商家深入了解顾客特征,提升运营效率。文章详细说明了API的参数配置、响应数据、接入流程,并附有Python调用示例,便于开发者快速集成。适合零售、餐饮等行业从业者使用。
客流类API实测:门店到访客群画像数据
|
8月前
|
JSON 数据可视化 API
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
|
4月前
|
缓存 负载均衡 监控
微服务架构下的电商API接口设计:策略、方法与实战案例
本文探讨了微服务架构下的电商API接口设计,旨在打造高效、灵活与可扩展的电商系统。通过服务拆分(如商品、订单、支付等模块)和标准化设计(RESTful或GraphQL风格),确保接口一致性与易用性。同时,采用缓存策略、负载均衡及限流技术优化性能,并借助Prometheus等工具实现监控与日志管理。微服务架构的优势在于支持敏捷开发、高并发处理和独立部署,满足电商业务快速迭代需求。未来,电商API设计将向智能化与安全化方向发展。
|
自然语言处理 算法 Java
地址描述转换为坐标点不使用API,有什么转换的方法?
地址描述转换为坐标点不使用API,有什么转换的方法?
657 64
|
12月前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
295 1
|
7月前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
155 11
|
10月前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
122 8
|
10月前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
1388 5
|
12月前
|
Java 大数据 API
别死脑筋,赶紧学起来!Java之Steam() API 常用方法使用,让开发简单起来!
分享Java Stream API的常用方法,让开发更简单。涵盖filter、map、sorted等操作,提高代码效率与可读性。关注公众号,了解更多技术内容。
433 5

热门文章

最新文章