Java面向对象-常用类(Math类)

常用类-Math类

Math 类提供了一序列基本数学运算和几何函数的方法。

Math类是类,并且它的所有成员变量和成员方法都是静态的。

1 Math类的常量和常用方法

常量

static doubleE
比任何其他值都更接近 e(即自然对数的底数)的 double 值。
static doublePI
比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。

常用方法:Math内的所有方法均为静态

double sin(double a)计算角a的正弦值
double cos(double a)计算角a的余弦值
double pow(double a,double b)计算a的b次方
double sqrt(double a)计算给定值的平方根
int abs(int a)计算int类型值a的绝对值,也接收long、float和double类型的参数
double ceil(double a)返回大于等于a的最小整数的double值
double floor(double a)返回小等于a的最大整数的double值
int max(int a,int b)返回a和b中的较大值,也接收long、float和double类型的参数
int min(int a,int b)返回a和b中的较小值,也接收long、float和double类型的参数
int round(float a)四舍五入返回整数
double random()返回带正号的double值,该值大于等于0.0且小于1.0
package com.qf.math_class;public class Test01 {*/public static void main(String[] args) {System.out.println("求次方:" + Math.pow(3, 2));//9.0System.out.println("求平方根:" + Math.sqrt(9));//3.0System.out.println("获取绝对值:" + Math.abs(-100));//100System.out.println("向上取整(天花板):" + Math.ceil(1.1));//2.0System.out.println("向下取整(地板):" + Math.floor(1.9));//1.0System.out.println("四舍五入:" + Math.round(1.5));//2System.out.println("最大值:" + Math.max(10, 20));//20System.out.println("最小值:" + Math.min(10, 20));//10System.out.println("获取随机值(0包含~1排他):" + Math.random());//0.39661220991942137//需求:随机出1~100的数字System.out.println((int)(Math.random()*100) + 1);}
}

2 Math相关面试题

package com.qf.math_class;public class Test02 {/*** 知识点:Math类面试题*/public static void main(String[] args) {//-2的31次方System.out.println("获取int类型最小值:" + Integer.MIN_VALUE);//-2147483648//2的31次方-1System.out.println("获取int类型最大值:" + Integer.MAX_VALUE);//2147483647//面试题:Math类的abs()是否会返回负数?System.out.println(Math.abs(Integer.MIN_VALUE));//-2147483648}
}

3 静态导入(了解)

​ 当使用一个类里面的静态方法或者静态变量时,每次都需要写类名。如果不想写类名,想直接写方法名或者变量名,则可以考虑使用静态导入

语法:import static 包名.类名.*; //导入该类下的所有静态方法和常量8

例如:import static java.lang.Math.*; //导入Math下的所有方法和变量(包括常量)

则代码中可以直接使用方面和变量名,而不需要前缀Math

如:max(3,4);

package com.qf.math_class;//静态导入:将类里的静态属性和方法导入到本类来,成为本类自己的静态属性和方法
import static java.lang.Math.*;public class Test03 {/*** 知识点:静态导入* * 缺点:可读性不高*/public static void main(String[] args) {System.out.println("获取绝对值:" + abs(-100));//100System.out.println("向上取整(天花板):" + ceil(1.1));//2System.out.println("向下取整(地板):" + floor(1.9));//1}public static int abs(int i){return 1234567890;}}

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

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

相关文章

什么是SPI,和API有啥区别

Java 中区分 API 和 SPI,通俗的讲:API 和 SPI 都是相对的概念,他们的差别只在语义上,API 直接被应用开发人员使用,SPI 被框架扩展人员使用。 API (Application Programming Interface) 定义: API是一组定义了软件组件…

图像处理ASIC设计方法 笔记24 等价表和标记代换

(一)等价表的整理与压缩 1.1 等价关系的识别与追踪 在初步标记过程完成后,等价表的整理和压缩变得至关重要。这一阶段的首要任务是从等价表的地址1开始,对等价表进行逐个扫描。在扫描过程中,系统将检查每个临时标记是否…

链表类型的无界阻塞线程安全队列-ConcurrentLinkedQueue(FIFO)

ConcurrentLinkedQueue是非阻塞线程安全(volatile不能完全保证线程安全)的队列,适用于“高并发”的场景。是一个基于链表节点的无界线程安全队列,按照 FIFO(先进先出,尾先进头先出)原则对元素进行排序。队列元素中不可以放置null元素(内部实现的特殊节点除外)。 volati…

【rust工具链】

1 查看正在使用的工具链 命令:rustup show 结果显示: 从图中可以看到正在使用的是rustc 1.76.0版本,也可以看到已安装的所有版本的工具链 2 使用默认工具链 命令:rustup default 版本号 例如:rustup default 1.58…

【重学C语言】十五、文件操作

【重学C语言】十五、文件操作 文件的概念什么是流文件类型文本文件和二进制文件的区别文件指针文件指针常量预定义的文件指针stdin (标准输入)stdout (标准输出)stderr (标准错误输出)示例文件指针的声明使用文件指针悬挂指针示例文件缓冲区为什么需要缓冲区?缓冲区的类型缓冲…

Python语言绘制好看的小提琴图、箱形图、散点图、山脊图和柱状图等等

废话不多说,今天给大家分享一个,使用python绘制小提琴图、箱形图、散点图、山脊图和柱状图等等 图中的数据是随机生成的,图例,图注以及坐标题目各种信息,具体内容大家可以自己修改~ 效果图如下所示 👇&a…

AIGC时代算法工程师的面试秘籍(2024.4.29-5.12第十三式) |【三年面试五年模拟】

写在前面 【三年面试五年模拟】旨在整理&挖掘AI算法工程师在实习/校招/社招时所需的干货知识点与面试方法,力求让读者在获得心仪offer的同时,增强技术基本面。也欢迎大家提出宝贵的优化建议,一起交流学习💪 欢迎大家关注Rocky…

『ZJUBCA Weekly Feed 07』MEV | AO超并行计算机 | Eigen layer AVS生态

一文读懂MEV:区块链的黑暗森林法则 01 💡TL;DR 这篇文章介绍了区块链中的最大可提取价值(MEV)概念,MEV 让矿工和验证者通过抢先交易、尾随交易和三明治攻击等手段获利,但也导致网络拥堵和交易费用增加。为了…

ThreadPoolExecutor线程池使用以及源码解析

文章目录 1. 引子2. 线程池源码分析2.1. 总览2.2. Executor2.3. ExecutorService2.4. AbstractExecutorService2.5. ThreadPoolExecutor构造函数核心参数阻塞队列拒绝策略核心属性线程池状态Worker 类execute() 方法addWorker() 方法runWorker() 方法getTask() 方法processWork…

奇舞周刊第529期:万字长文入门前端全球化

周五快乐(图片由midjourney生成) 奇舞推荐 ■ ■ ■ 万字长文入门前端全球化 目前国内企业正积极开拓国际市场,国际化已成为重要的发展方向,因此产品设计和开发更需考虑国际化。本文介绍了语言标识、文字阅读顺序等诸多知识。然后…

Java面试题:Java中的并发集合有哪些?请举例说明它们的使用场景

Java中的并发集合是为多线程环境设计的,它们提供了线程安全的访问和操作。以下是Java中一些常见的并发集合及其使用场景: ConcurrentHashMap: 线程安全的HashMap实现。它通过将数据分布在多个段(segment)上,每个段单独加锁&#x…

ubuntu安装samba实现共享文件windows可查看ubuntu中的文件

samba的作用:实现共享linux/ubuntu系统中的文件,在windows直接查看操作ubuntu/linux中的文件、文件夹 1、安装samba sudo apt-get install samba如果不能安装samba,则更新apt-get sudo apt-get upgrade sudo apt-get update sudo apt-get d…

LeetCode热题100—链表(一)

160.相交链表 题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意&#x…

These relative modules were not found:* ../../../constant in

这个错误信息表明,你的项目在尝试加载一个相对路径模块 ../../../constant 时遇到了问题。具体来说,它在 ./node_modules/cache-loader/dist/cj 这个路径下找不到这个模块。 这里有几个可能的原因和相应的解决方案: 路径错误:首…

ts: 索引类型

一: 索引签名 索引签名用于定义对象类型,允许对象具有任意数量的属性,但属性名的类型必须是字符串(在大多数情况下)或数字(在某些特定的上下文中,如数组或类似数组的对象)。索引签名…

CHFS数据区县码(最全版本)

CHFS数据区县码(最全版本) CHFS数据区县码(2011-2019年),数据真实可用,并可赠送chfs2011-2019年公开数据。

【Unity2D 2022:Cinemachine】相机跟随与地图边界

一、导入Cinemachine工具包 1. 点击Window-Package Manager,进入包管理界面 2. 点击All,找到Cinemachine工具包,点击Install 二、相机跟随角色 1. 选中Main Camera,点击Component-Cinemachine-CinemachineBrain,新建…

linux中sysfs创建设备节点的方法和DEVICE_ATTR

使用DEVICE_ATTR宏,可以定义一个struct device_attribute设备属性,使用函数sysfs_create_group或sysfs_create_file便可以在设备目录下创建具有show和store方法的节点。能方便的进行调试。 一、使用DEVICE_ATTR构建device attribute 下面将顺着我们直接…

Sping源码(八)—Spring事件驱动

观察者模式 在介绍Spring的事件驱动之前,先简单的介绍一下设计模式中的观察者模式。 在一个简单的观察者模式只需要观察者和被观察者两个元素。简单举个栗子: 以警察盯梢犯罪嫌疑人的栗子来说: 其中犯罪嫌疑人为被观察者元素而 警察和军人为…

【启程Golang之旅】基本变量与类型讲解

欢迎来到Golang的世界!在当今快节奏的软件开发领域,选择一种高效、简洁的编程语言至关重要。而在这方面,Golang(又称Go)无疑是一个备受瞩目的选择。在本文中,带领您探索Golang的世界,一步步地了…