【进阶篇-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;@Overridepublic 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));//11System.out.println("--------------------");//2、ceil():向上取整System.out.println(Math.ceil(12.0));//12.0System.out.println(Math.ceil(12.2));//13.0System.out.println(Math.ceil(12.5));//13.0System.out.println(Math.ceil(12.9));//13.0System.out.println("--------------------");//3、floor():向下取整System.out.println(Math.floor(12.0));//12.0System.out.println(Math.floor(12.2));//12.0System.out.println(Math.floor(12.5));//12.0System.out.println(Math.floor(12.9));//12.0System.out.println("--------------------");//4、round():四舍五入System.out.println(Math.round(12.0));//12System.out.println(Math.round(12.4));//12System.out.println(Math.round(12.5));//13System.out.println(Math.round(12.9));//13System.out.println("--------------------");//5、max():获取两个数中的较大值;min():获取两个数中的较小值System.out.println(Math.max(12, 15));//15System.out.println(Math.min(12, 15));//12System.out.println("--------------------");//6、pow():返回a的b次幂的值System.out.println(Math.pow(2, 3));//8.0System.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.0099999999999997868371792719699442386627197265625BigDecimal num2 = new BigDecimal("2.01");System.out.println(num2);//2.01BigDecimal 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));//二进制 1010System.out.println(Integer.toOctalString(num));//八进制 12System.out.println(Integer.toHexString(num));//十六进制 aSystem.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);}
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电压互感器在线监测的原理

电压互感器在线监测的原理主要基于电磁感应、电场效应以及一系列先进的监测技术。以下是对其原理的详细解释&#xff1a; 一、电磁感应原理 电压互感器&#xff08;Voltage Transformer&#xff0c;简称VT&#xff09;本质上是一种降压变压器&#xff0c;它利用电磁感应的原理…

pg分区表和mysql分区表的创建及删除添加操作

一、分区的类型 1、pg分区的类型 范围划分 列表划分 哈希分区 2、mysql分区的类型 范围分区 列表分区 hash分区 列分区 密匙分区 子分区 二、pg范围分区表的创建删除添加操作 1、pg分区表的创建 2、pg的分区表删除 3、pg分区表的添加 创建新的子分区 添加新创建的子分区 …

python 字符串驻留机制

偶然发现一个python字符串的现象&#xff1a; >>> a 123_abc >>> b 123_abc >>> a is b True >>> c abc#123 >>> d abc#123 >>> c is d False 这是为什么呢&#xff0c;原来它们的id不一样。 >>> id(a)…

随想录 Day 66 110. 字符串接龙 105. 有向图的完全可达性 106. 岛屿的周长

随想录 Day 66 110. 字符串接龙 105. 有向图的完全可达性 106. 岛屿的周长 110. 字符串接龙 110. 字符串接龙 时间限制&#xff1a;1.000S 空间限制&#xff1a;256MB 题目描述 字典 strList 中从字符串 beginStr 和 endStr 的转换序列是一个按下述规格形成的序列&#xff1…

浙大宁波理工学院2024年成人高等继续教育招生简章

浙大宁波理工学院&#xff0c;这所承载着深厚学术底蕴和卓越教育理念的学府&#xff0c;正热烈开启2024年成人高等继续教育的招生之门。这里&#xff0c;是知识的殿堂&#xff0c;是智慧的摇篮&#xff0c;更是您实现个人梦想、追求更高境界的起点。 ​浙大宁波理工学院始终坚…

实战指南:部署Elasticsearch 8.4.1与Kibana 8.4.1并集成IK分词器

首先拉取elasticsearch和kibana镜像 docker pull elasticsearch:8.4.1 docker pull kibana:8.4.1如果遇到镜像拉去不下来&#xff0c;遇到如下问题&#xff1a; [ERROR] error pulling image configuration: Get " https://production.cloudflare.docker.com/registry-v…

【吊打面试官系列-Mysql面试题】视图有哪些优点?

大家好&#xff0c;我是锋哥。今天分享关于 【视图有哪些优点&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 视图有哪些优点&#xff1f; 答&#xff1a; (1) 视图能够简化用户的操作&#xff1b; (2) 视图使用户能以多种角度看待同一数据&#xff1b; (3) 视…

编程参考 - GCC的条件编译

4 Conditionals 条件是一种指令&#xff0c;它指示预处理器选择是否在传递给编译器的最终标记流中包含一段代码。预处理器条件可以测试算术表达式&#xff0c;也可以测试名称是否定义为宏&#xff0c;或者使用特殊的defined操作符同时测试这两种表达式。 A conditional is a di…

【C#】使用数字和时间方法ToString()格式化输出字符串显示

在C#编程项目开发中&#xff0c;几乎所有对象都有格式化字符串方法&#xff0c;其中常见的是数字和时间的格式化输出多少不一样&#xff0c;按实际需要而定吧&#xff0c;现记录如下&#xff0c;以后会用得上。 文章目录 数字格式化时间格式化 数字格式化 例如&#xff0c;保留…

【docker1】指令,docker-compose,Dockerfile

文章目录 1.pull/image&#xff0c;run/ps&#xff08;进程&#xff09;&#xff0c;exec/commit2.save/load&#xff1a;docker save 镜像id&#xff0c;不是容器id3.docker-compose&#xff1a;多容器&#xff1a;宿主机&#xff08;eth0网卡&#xff09;安装docker会生成一…

4、SpringMVC 实战小项目【加法计算器、用户登录、留言板、图书管理系统】

SpringMVC 实战小项目 3.1 加法计算器3.1.1 准备⼯作前端 3.1.2 约定前后端交互接⼝需求分析接⼝定义请求参数:响应数据: 3.1.3 服务器代码 3.2 ⽤⼾登录3.2.1 准备⼯作3.2.2 约定前后端交互接⼝3.2.3 实现服务器端代码 3.3 留⾔板实现服务器端代码 3.4 图书管理系统准备后端 3…

【电路笔记】-共发射极放大器

共发射极放大器 文章目录 共发射极放大器1、概述2、完整的CEA配置3、直流等效电路4、交流等效电路5、输入阻抗6、输出阻抗7、电压增益8、微分电容的重要性9、信号源的衰减10、电流增益11、相位反转12、总结1、概述 在本文中,我们将介绍基于双极晶体管的放大器的最后一种拓扑:…

2024 WaniCTF repwn 部分wp

lambda 文本编辑器打开附件 稍微格式化一下 结合gpt理解题目意思。 脚本 home 附件拖入ida 简单的检查环境和反调试&#xff0c;进构造flag的函数 简单的ollvm&#xff0c;用d810嗦一下 下断点调试&#xff0c;通过修改eip跳过反调试。查看dest内容&#xff0c;需要稍微向下翻一…

GitHub每周最火火火项目(6.17-6.23)

项目名称&#xff1a;1Panel-dev / MaxKB 项目介绍&#xff1a;MaxKB 是一个基于 LLM 大语言模型的知识库问答系统。它具有开箱即用的特点&#xff0c;支持快速嵌入到第三方业务系统中&#xff0c;由 1Panel 官方出品。该系统可以帮助用户快速构建知识库&#xff0c;并通过自然…

QT中利用动画弄一个侧边栏窗口,以及贴条效果

1、效果 2、关键代码 void Widget::on_sliderBtn_clicked() {m_sliderWidget->show();QPropertyAnimation* animation = new QPropertyAnimation(m

第14章. GPIO简介

目录 0. 《STM32单片机自学教程》专栏 14.1 GPIO基本结构 14.1.1 保护二极管 14.1.2 上拉、下拉电阻 14.1.3 施密特触发器 14.1.4 P-MOS 管和 N-MOS 管 14.1.5 输出数据寄存器 14.1.6 输入数据寄存器 14.2 GPIO工作模式 14.2.1 输入模式 14.2.1.1 输入浮空模式 1…

基础名词概念

了解以下基础名词概念/定义&#xff1a; IP地址、子网掩码、网关、DNS、DHCP、MAC地址、网络拓扑、路由器、交换机、VPN、端口、TCP、UDP、HTTP、HTTPS、OSI模型、ARP、NAT、VLAN、FTP、SMTP、IMAP、SSL、ICMP、链路聚合、TRUNK、直连路由、静态路由、动态路由、IPV6 端口&am…

YOLOv10独家改进:BiFormer:从局部空间特征到高效的全局空间特征

目录 提出背景 子解法1: 稀疏注意力引入: 子解法2: 区域级路由: 子解法3: 令牌级注意力应用: 2.YOLOv10加入BRA 2.1新建models/attention/BiLevelRoutingAttention.py 2.2修改task.py 2.3 yolov10n-BRA.yaml 2.4 yolov10n-PSBRA.yaml 提出背景 论文:https://arxiv.org…

ABB机器人教程:工具载荷与有效载荷数据自动标定操作方法

目录 概述 工具载荷自动标定前的准备工作 进入载荷识别服务例行程序 工具载荷识别与标定操作 有效载荷识别与标定操作要点 4轴码垛类型机器人载荷数据标定说明 概述 在使用ABB机器人前需要正确标定一些关键数据&#xff0c;其中就包含载荷数据。理论上讲&#xff0c;安装…

【协议-指南】

协议-指南 ■ CAN-通讯协议 ■ CAN-通讯协议 添加链接描述