【进阶篇-Day5:JAVA常用API的使用(Math、BigDecimal、Object、包装类等)】

目录

  • 1、API的概念
  • 2、Object类
    • 2.1 Object类的介绍
    • 2.2 Object的toString()方法
    • 2.3 Object的equals()方法
    • 2.4 Objects概述
  • 3、Math类
  • 4、System类
  • 5、BigDecimal类
  • 6、包装类
    • 6.1 包装类的概念
    • 6.2 几种包装类
      • (1)手动转换包装类:
      • (2)自动转换包装类:
      • (3)Integet常用方法:
      • (4)练习:

1、API的概念

在这里插入图片描述

下面要介绍以下几种类型:
在这里插入图片描述

2、Object类

2.1 Object类的介绍

在这里插入图片描述

2.2 Object的toString()方法

在这里插入图片描述

注:
在这里插入图片描述

2.3 Object的equals()方法

在这里插入图片描述

重写equals方法代码:

public class Student {
   String name;
   int age;

   @Override
   public boolean equals(Object o) {
       if (this == o) return true;
       
       if (o == null || getClass() != o.getClass()) return false;
       
       Student student = (Student) o;
       return age == student.age && Objects.equals(name, student.name);
   }
}

2.4 Objects概述

在这里插入图片描述
在这里插入图片描述

注1:Objects.equals()对象.equals()区别在于前者能避免空指针,而后者不能,除此之外无区别。

注2:Objects.isNull(对象)对象==null完全没有区别。

3、Math类

在这里插入图片描述
案例:

package com.itheima.object.tostring;
import java.util.Objects;
public class ToStringDemo {
    public static void main(String[] args) {
        //1、abs():取绝对值
        System.out.println(Math.abs(-11));//11

        System.out.println("--------------------");

        //2、ceil():向上取整
        System.out.println(Math.ceil(12.0));//12.0
        System.out.println(Math.ceil(12.2));//13.0
        System.out.println(Math.ceil(12.5));//13.0
        System.out.println(Math.ceil(12.9));//13.0

        System.out.println("--------------------");

        //3、floor():向下取整
        System.out.println(Math.floor(12.0));//12.0
        System.out.println(Math.floor(12.2));//12.0
        System.out.println(Math.floor(12.5));//12.0
        System.out.println(Math.floor(12.9));//12.0

        System.out.println("--------------------");

        //4、round():四舍五入
        System.out.println(Math.round(12.0));//12
        System.out.println(Math.round(12.4));//12
        System.out.println(Math.round(12.5));//13
        System.out.println(Math.round(12.9));//13

        System.out.println("--------------------");

        //5、max():获取两个数中的较大值;min():获取两个数中的较小值
        System.out.println(Math.max(12, 15));//15
        System.out.println(Math.min(12, 15));//12

        System.out.println("--------------------");

        //6、pow():返回a的b次幂的值
        System.out.println(Math.pow(2, 3));//8.0

        System.out.println("--------------------");

        //7、random():返回值为double的随机值,范围[0.0, 1.0]
        System.out.println(Math.random());//0.5845474907388395
    }
}

注:Math.random()方法没有Random类创建的随机数方便,因为Random类创建的随机数可以指定范围。

4、System类

在这里插入图片描述
代码:

public class SystemDemo {
    public static void main(String[] args) {
        /**
          System.currentTimeMillis():返回当前系统的时间毫秒值形式。
                                    -返回1970年1月1日0时0分0秒,到现在所经历过的毫秒值
         */
        System.out.println(System.currentTimeMillis());

        /**
         * System.arraycopy():数组拷贝
         */
        int[] arr = {11, 22, 33, 44, 55};
        int[] destArr = new int[3];
        System.arraycopy(arr, 2, destArr, 0, 3);
        for (int i = 0; i < destArr.length; i++) {
            System.out.println(destArr[i]);//33,44,55
        }

        /**
         * System.exit():终止当前运行的JAVA虚拟机
         */
        System.exit(0);
    }
}

在这里插入图片描述

5、BigDecimal类

在这里插入图片描述

在这里插入图片描述

三种创建方法,推荐后两种,案例代码如下:

public class BigDecimalDemo {
    public static void main(String[] args) {
        BigDecimal num1 = new BigDecimal(2.01);//不推荐,因为不精确
        System.out.println(num1);//2.0099999999999997868371792719699442386627197265625

        BigDecimal num2 = new BigDecimal("2.01");
        System.out.println(num2);//2.01

        BigDecimal num3 = BigDecimal.valueOf(2.01);
        System.out.println(num3);//2.01 
    }
}

在这里插入图片描述

在这里插入图片描述
代码案例:

package com.itheima.object.tostring;
import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalDemo {
    public static void main(String[] args) {
        //BigDecimal常用成员方法:
        BigDecimal num1 = new BigDecimal("10.0");
        BigDecimal num2 = BigDecimal.valueOf(3.0);
        //1、加法:
        System.out.println(num1.add(num2));//
        //2、减法:
        System.out.println(num1.subtract(num2));//
        //3、乘法:
        System.out.println(num1.multiply(num2));//
        //4、除法:
        System.out.println(num1.divide(num2, 2, RoundingMode.HALF_UP));//3.33 四舍五入
        System.out.println(num1.divide(num2, 2, RoundingMode.UP));//3.34 最后一位向上取整
        System.out.println(num1.divide(num2, 2, RoundingMode.DOWN));//3.33 最后一位向下取整
    }
}

6、包装类

6.1 包装类的概念

在这里插入图片描述

6.2 几种包装类

在这里插入图片描述

怎么包呢?
答:
以Integet包装类为例看下

(1)手动转换包装类:

在这里插入图片描述

在这里插入图片描述

public class IntegerDemo {
    public static void main(String[] args) {
        int num = 10;
        //1、手动装箱
        Integer integer = new Integer(num); //不推荐
        Integer integer1 = Integer.valueOf(num);

        //2、手动拆箱
        int i = integer.intValue();
    }
}

(2)自动转换包装类:

在这里插入图片描述

在这里插入图片描述

public class IntegerDemo {
    public static void main(String[] args) {
        int num = 10;
        //自动拆装箱:直接赋值即可
        Integer num1 = num;
    }
}

(3)Integet常用方法:

在这里插入图片描述

package com.itheima.object.tostring;

public class IntegerDemo {
    public static void main(String[] args) {
        int num = 10;
        System.out.println(Integer.toBinaryString(num));//二进制 1010
        System.out.println(Integer.toOctalString(num));//八进制 12
        System.out.println(Integer.toHexString(num));//十六进制 a
        System.out.println(Integer.parseInt("11"));//将字符串类型的整数转换为int类型 11
    }
}

(4)练习:

在这里插入图片描述

package com.itheima.object.tostring;

public class IntegerDemo2 {
    public static void main(String[] args) {
        String s = "10,50,30,20,40";
        String[] split = s.split(",");//切割为字符数组
        int[] intArr = new int[split.length];
        for (int i = 0; i < split.length; i++) {//遍历并转换为整数,存入整数数组中
            intArr[i] = Integer.parseInt(split[i]);
//            System.out.println(intArr[i]);
        }
        int max = intArr[0];
        for (int i = 1; i < intArr.length; i++) {//求子最大值
            if (max < intArr[i]){
                max = intArr[i];
            }
        }
        System.out.println("最大值为:" + max);
    }
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/735307.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端Web开发HTML5+CSS3+移动web视频教程 Day1

链接 HTML 介绍 写代码的位置&#xff1a;VSCode 看效果的位置&#xff1a;谷歌浏览器 安装插件 open in browser&#xff1a; 接下来要保证每次用 open in browser 打开的是谷歌浏览器。只需要将谷歌浏览器变为默认的浏览器就可以了。 首先进入控制面板&#xff0c;找到默…

实时语音翻译软件哪个好?多语言实时沟通无负担

众所周知&#xff0c;英语是国际交流的共同语言。无论是跨国商务洽谈还是学术研讨&#xff0c;英语的流畅使用至关重要。 然而&#xff0c;语言的障碍依然存在&#xff0c;这时一款高效的英语语音翻译软件就显得尤为关键。它们能够即时转换语言&#xff0c;让我们的对话无国界…

Java模拟马尔可夫链类问题的验证

马尔可夫链&#xff08;Markov Chain, MC&#xff09;是概率论和数理统计中具有马尔可夫性质&#xff08;Markov property&#xff09;且存在于离散的指数集&#xff08;index set&#xff09;和状态空间&#xff08;state space&#xff09;内的随机过程&#xff08;stochasti…

“Jedis与Redis整合指南:实现高效的Java应用与Redis交互“

目录 #. 概念 1. 导入jedis依赖 2. 写一个类&#xff08;ping通redis&#xff09; 3. String字符串使用 3.1 set&#xff0c;get方法使用&#xff08;设值&#xff0c;取值&#xff09; 3.2 mset&#xff0c;mget方法使用&#xff08;设置多个值&#xff0c;取多个值&…

没有主题只是一些想法

自己随感&#xff0c;杂乱无章。 AI: 生命减熵过程中的关键进化策略及其对企业和个人的启示 生命的减熵过程&#xff0c;即生命体对抗自然熵增趋势&#xff0c;维持自身有序性和复杂性的过程&#xff0c;体现了生命体在演化中的高度适应性和创新性。从学术化的角度来看&…

基于nsight_compute进行kernel性能分析

当利用nsight进行性能分析时&#xff0c;当涉及到内核级别的性能分析时&#xff0c;nvidia提供了系统级别(nsight system)&#xff0c;和内核级别的性能分析工具&#xff08;nsight compute&#xff09;。 其中&#xff0c;内核级别的性能分析&#xff0c;可以检查kernel实现的…

自动更新阿里云CDN SSL证书

deploy-certificate-to-aliyun 随着各大CA机构开始收割用户&#xff0c;云厂商们提供的免费SSL证书也由之前的12个月变成现在的3个月。笔者一直使用阿里云的OSS作为图床&#xff0c;说实话在如果继续在阿里云上三个月免费一换也太频繁了 笔者在这里使用github action来每隔两个…

CentOS系统查看版本的各个命令

cat /etc/centos-release 查看CentOS版本 uname -a 命令的结果分别代表&#xff1a;当前系统的内核名称、主机名、内核发型版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称 cat /proc/version 命令用于查看Linux内核的版本信息。执行该命令后&#xf…

练手代码之使用Python实现合并PDF文件

如果你有合并PDF的需要&#xff0c;你会怎么办 我们无所不能的程序员会选择写一个Python代码来实现&#xff08;谁会这么无聊&#xff1f;是我&#xff09;&#xff0c;如果真的有PDF操作需要&#xff0c;我推荐你使用PDF Expert这个软件哈~ 话不多说直接上代码&#xff1a; …

高通安卓12-OTA 升级

1.OTA介绍 OTA 英文全称是 Over-the-Air Technology&#xff0c;即空间下载技术的意思。 OTA 升级是 Android 系统提供的标准软件升级方式。它功能强大&#xff0c;可以无损失升级系统&#xff0c;主 要通过网络[例如 WIFI、3G]自动下载 OTA 升级包、自动升级&#xff0c;但…

NeRF从入门到放弃6:两种OpenCV去畸变模型

针孔相机和鱼眼相机的去畸变模型是不一样的。 针孔相机的畸变参数有12个&#xff0c;k1~k6是径向畸变参数&#xff0c;p1 p2是切向畸变&#xff0c;s1s4&#xff1b;而鱼眼相机是等距模型&#xff0c;畸变参数只有4个k1k4。 针孔相机 畸变分为径向畸变和切向畸变。 把相机平…

高中数学:数列-an和Sn混合的题型处理

一、核心思想 题目一般会给我们一个或几个等式作为条件&#xff0c;其中&#xff0c;含有an和Sn关联的式子 那么&#xff0c;如果&#xff0c;题目需要我们求an&#xff0c;我们就想办法用其他条件消除Sn即可。 反之&#xff0c;求Sn&#xff0c;则用其他条件消除an即可。 二…

k8s volcano + deepspeed多机训练 + RDMA ROCE+ 用户权限安全方案【建议收藏】

目录 一、k8s环境配置 1.安装gpu-operator 2. 安装 rdma-shared-plugin 3. 安装volcano调度器 4. 创建research rbac认证 二、宿主机环境配置 1. 安装docker 客户端 2. 创建系统用户 3. 修改docker /etc/docker/daemon.json 文件如下 4. 修改系统 /etc/subuid 三、制…

APP终极瘦身方案

具体可参见 github.com/shwenzhang/… 优化META-INF MANIFEST.MF&#xff1a;是摘要文件&#xff0c;程序会遍历apk包中所有的文件&#xff0c;对非文件夹、非签名文件的文件&#xff0c;逐个编码生成摘要信息&#xff0c;并记录于此。如果逆向修改了任何文件&#xff0c;那么…

异地数据中心的数据实时同步,该怎样智能化实现?

为了提高系统的可用性和容错性&#xff0c;越来越多的企业和机构采用两地三中心方案等来进行异地数据中心的建设。数据中心建立后&#xff0c;数据需要同步至总部或其他数据中心及系统&#xff0c;以确保数据的冗余性、可用性、可靠性和一致性。在分布式系统、云计算、容灾备份…

游戏工厂:AI(AIGC/ChatGPT)与流程式游戏开发

游戏工厂&#xff1a;AI&#xff08;AIGC/ChatGPT&#xff09;与流程式游戏开发 码客 卢益贵 ygluu 关键词&#xff1a;AI&#xff08;AIGC、ChatGPT、文心一言&#xff09;、流程式管理、好莱坞电影流程、电影工厂、游戏工厂、游戏开发流程、游戏架构、模块化开发 一、前言…

3D开发工具HOOPS为BIM应用提供支持:复杂大模型实现Web端轻量化!

在数字化转型的浪潮中&#xff0c;Tech Soft 3D以其HOOPS SDK工具包&#xff0c;为软件开发人员提供了强大的支持。这一工具包不仅支持Windows、Linux、OSX和移动平台等多样化的操作系统&#xff0c;还使得开发人员能够构建出庞大而复杂的建筑和BIM应用程序。HOOPS SDK的多格式…

RIP动态路由配置

1、搭建网络 搭建拓扑、规划IP地址、划分网段、设置端口 2、配置交换机&#xff0c;路由器 三层交换机配置 Switch>enable Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname S3560S3560(config)#vlan 10 S3560(con…

fot循环语句

概念&#xff1a; 循环是一种重复执行一段代码的结构&#xff0c;只要满足循环的条件&#xff0c;会一种执行这个代码。 循环条件&#xff1a;在一定范围内&#xff0c;按照指定的次数来执行循环 循环体&#xff1a;在指定的次数内&#xff0c;执行的命令序列。只要条件满足…

GD32F4xx 移植agile_modbus软件包与电能表通信

目录 1. agile_modbus1.1 简介1.2 下载2. agile_modbus使用2.1 源码目录2.2 移植3. 通信调试3.1 代码3.3 通信测试1. agile_modbus 1.1 简介 agile_modbus是一个轻量级的Modbus协议栈,主要特点: 支持RTU和TCP协议,采用纯C语言开发,不涉及任何硬件接口,可直接在任何形式的…