Java常用API 之 java.lang.Math类(附解析和示例)_01

App渗透 - 人脸识别登录绕过 一、APP抓包和逆向破解加密算法打开APP是一个登录框抓包后发现参数被加密了使用Jadx脱源码发现,并没有加壳也没有混淆,运气很好根据经验,先搜索Encrypt、Decrypt等关键字,发现在Common.js中有一个encryptData函数定位过去,一套加解密算法都写好了放在这放到浏览器console里面调试,果然没错二、寻找注入点首先测试了一下注入明文:{"userName":"TEST'... 阅读详情

Math类直接继承Object类:

public final class Math extends Object

    Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。java.lang包内有一个名为StrictMath类,StrictMath类和Math类有很多同名方法。在默认情况下,很多 Math 类方法直接调用 StrictMath中的等价方法来完成。

    为了确保 Java 程序的可移植性,StrictMath类中的函数根据fdlibm(免费发布的数学库)定义,在不同平台执行都能获得完全一样的结果,多次运行也能产生一样的结果。Math类不像StrictMath类那样严格,允许浮点数最后一两个位数有误差,以此换来性能的提升。

对比Math类的源码和StrictMath类的源码

StrictMath类:

public final class StrictMath 
{
    public static native double sin(double a);//被native修饰的方法称为本地方法,用非Java代码(比如C语言代码)实现。
}

Math类:

public final class Math 
{
    public static  double sin(double a)
    {
        return StrictMath.sin(a);
    }
}

所以如果希望拥有更好的性能,就使用Math类(Math类更常用些);但在某些情况下,得到一个完全可靠、可预测的结果更重要些,那就得用StrictMath类。


-------------------------------------分割线--------------------------------------------------------

下面进入正题,列出比较常用的Math类API。

注:Math类里的域和方法都是静态的,也就是调用的时候不用创建对象,直接Math.xxx调用即可。

--------------------------------------分割线------------------------------------------------------


静态域
Math.E

e:自然对数的底数,double类型。

2.718281828459045

Math.PI 

π:圆的周长与直径之比,double类型。

3.141592653589793


 

静态方法
static double abs(double a)

返回 a 的绝对值。

例: abs(-4.3) = 4.3

static double cos(double a)

参数是以弧度表示的角,返回该角的余弦值。

例:cos(Math.PI) = -1

static double sin(double a) 

参数是以弧度表示的角,返回该角的正弦值。

例:sin(Math.PI / 2) = 1

static double tan(double a) 

参数是以弧度表示的角,返回该角的正切值。

例:tan(Math.PI / 4) = 1

static double atan2(double y, double x) 

将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta。游戏设计用的多。

例:atan2(1,1) = 45

static double ceil(double a) 

返回大于或者等于 a 的最小整数,即向上取整。

例:ceil(11.8) = 12,可理解为天花板。

static double floor(double a) 返回小于或者等于 a 的最小整数,即向上取整。
例:ceil(11.8) = 11,可理解为地板。
static double exp(double a) 

返回自然数 e 的 a 次幂的值。

例:exp(2) = Math.E * Math.E

static double log(double a) 

返回 a 的自然对数(即底数是 e)。

例:log(Math.E * Math.E) = 2

static double log10(double a) 

返回 a 的底数为 10 的对数。

例:log10(100) = 2

static double max(double a, double b)

返回两个 a、b 中较大的一个。

例:max(5.7, 6,3) = 6.3

static double min(double a, double b)返回两个 a、b 中较大的一个。
例:min(5.7, 6,3) = 5.7
static double pow(double a, double b) 

返回 a 的 b 次方。

例:pow(2,3) = 8

static long round(double a) 

返回最接近 a 的 整数。可用于四舍五入。

例:round(3.3) = 3

static double signum(double d) 

返回参数的符号函数;

例:signum(0) = 0;   signum(0.01) = 1;    signum(-0.01) = -1;

static double sqrt(double a) 

返回的 a 的正平方根。

例:sqrt(4) = 2

static double toDegrees(double radians) 

将用弧度表示的角转换为近似相等的用角度表示的角。

例:toDegrees(Math.Pi) = 180

static double toRadians(double degrees) 

将用角度表示的角转换为近似相等的用弧度表示的角。

例:toRadians(180) = Math.PI

Universal Robot——在Gazebo中模拟UR5机器人 今天的目标是在Gazebo安装我们的ur5机器人。Gazebo是一个流行的模拟工具,它不仅可以让你像在Rviz中一样可视化你的机器人,而且还内置了一个物理引擎。这样你就可以在更真实的环境中测试你的机器人应用程序。我们将查看我们需要的属性 添加对我们的机器人——我们的order的描述,以模拟它以及如何在Gazebo中生成我们的机器人。 阅读详情

相关推荐

基于gem5模拟trace的cache模拟器的实现

在做计算机体系结构的时候,模拟器是一个重要且又有效的工具。其中gem5集成了gem和m5的优点,使用起来比较简单和方便。其中包括了se模式和fs模式,se模式是在gem5运行我们已经编译好的程序,可以获取cache,cpu状态等数据,fs模式下可以模拟操作系统,我们可以将我们自己修改的linux内核加载到哥们上运行。下面介绍了使用gem5的se模式,运行编译好的ARM可执行文件。获取访存的trac

gaoxiang的专栏 8891

java.lang.math_java.lang.Math中的基本方法

java.lang.Math类提供的方法都是static的,“静态引入”使得不必每次在调用类方法时都在方法前写上类名:import static java.lang.Math.*;这样在调用Math的方法时就能够简单地写出方法名,比如:cos(radians);----------------------------------------------------------1、基本方法:abs,...

weixin_29958797的博客 1314

千兆网口电路设计中的EMC防护与TVS选型实战

本文深入探讨了千兆网口电路设计中面临的EMC挑战,并提供了TVS二极管选型的实战指南。文章分析了ESD、浪涌和EFT等主要威胁,重点阐述了如何根据工作电压、钳位电压和关键的低结电容等参数为PHY芯片选择匹配的TVS器件,以确保在严苛电磁环境下实现可靠的信号完整性与防护。

m3n5b7v8c9x的博客 531

无涯教程-lgamma(x)函数

lgamma()函数计算传递给该函数的参数的gamma函数的对数。假设数字为。

无涯教程 530

Arch Linux双系统安装避坑指南:从Windows分区到桌面环境全流程

本文提供了一份详尽的Arch Linux与Windows双系统安装避坑指南。内容涵盖从安装前的UEFI环境确认、BitLocker处理、分区规划,到Live环境进入、基础系统安装、GRUB引导配置,再到显卡驱动安装、KDE/GNOME桌面环境部署及中文化设置的全流程。重点解决了双系统安装中的核心痛点,帮助用户在不破坏现有Windows系统的前提下,顺利完成Arch Linux的安装。

nice1的博客 535

llama.cpp 参数调优大全(4060 最优配置)

本文针对NVIDIA RTX 4060(8GB显存)显卡,提供了llama.cpp参数调优的实战指南。核心策略是采用小模型(7B/8B)配合Q4_K_M量化,通过合理设置GPU层数(-ngl 28)、上下文长度(-c 2048)和批量大小(-b 512)来平衡性能和显存占用。重点推荐启用flash-attn加速和mlock内存锁定,并给出标准、高性能和保守三种配置方案。调优优先级为:GPU利用率>吞吐量>显存>线程数,同时警示避免常见错误如过大上下文或GPU层数设置。最终推荐4060最佳配置为7B Q4_

刘一说的IT专栏 3403

Java.lang.Math类详解

Math类位于Java.lang包中,包含用于执行基本数学运算的方法!Math类的所有执行方法都是静态方法,可以直接使用类名.方法名调用,如:Math.round() 常用的方法:Math.round() 返回最接近参数的 int,它表示"四舍五入" Math.rint() 返回最接近参数并等于某一整数的 double 值,如果有2...

Jason的学习笔记 8078

【QT开发教程】如何在Qt中使用Protobuf进行高效数据序列化

Protocol Buffers(Protobuf)是Google开发的一种语言中立、平台中立、可扩展的序列化机制,常用于数据交换和存储。Qt作为一个跨平台的C++图形用户界面应用框架,可以与Protobuf结合使用,实现高效的数据序列化和反序列化。本文将介绍如何在Qt中集成和使用Protobuf,包括基本概念、安装步骤、使用示例以及实际应用。

科技改变人类,技术成就未来 1442

java.lang math 类

我们在编程的过程中,经常对一些数字进行数学操作,比如我们想要求绝对值或余弦什么的。那这些方法是否需要我们自己实现吗?其实在 java.lang 里的 Math 类Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。我们就来学习一下吧! 先认识一些方法吧: 方法 返回值 功能描述sin(double numvalue) double 计算角 numvalue 的...

weixin_33674976的博客 268

Ubuntu 22.04/24.04 安装 ROS2 完整教程(Humble / Jazzy)

最后更新:2026年2月适用系统:Ubuntu 22.04 LTS(Jammy) / Ubuntu 24.04 LTS(Noble)适用架构:x86_64 / arm64(包括树莓派)

2401_84116277的博客 6011

计算机视觉论文复现指南:从理论到可运行代码的保姆级教程

计算机视觉论文复现指南:从理论到可运行代码的保姆级教程​ ,人工智能,计算机视觉,大模型,AI,本文围绕计算机视觉论文复现展开,介绍从理论到可运行代码的全流程。先强调复现的重要性,再讲解复现前的准备,包括明确目标、构建工具链;接着说明代码获取分析、环境配置调优、调试运行技巧及结果验证优化方法,还推荐了高效工具,提及复现中的伦理规范。旨在助读者掌握复现方法论,实现从经典模型到前沿论文的复现,推动学术成果落地。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 12万+

Java.Lang.Math

温故而知新

王建明的博客 541

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java常用API之常见类及其相关操作(Math类与Random类以及日期操作类)

public Date(long date):表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。SimpleDateFormat(可以使用):实现日期和文本之间的转换(即Date和String类型间的转换)类 Date 表示特定的瞬间,精确到毫秒,也就是程序运行时的当前时间。(1)、直接使用(Math所在的包java.lang为默认引入的包)

xintaitehao的博客 1212

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【Java】—— 常用类和基础API:数学相关类Math

返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0。,Long类也是有限的,最大为2^63-1。:返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。:返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。:返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。

weixin_63106307的博客 721

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

04-常用API-01(Java.lang包)

什么是API​ API (Application Programming Interface) :应用程序编程接口java中的API​ 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来。我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。​ 1 String 类在 java.lang 包下,所以使用的时候不需要导包(所有在 java.lang 包下的类,使用时都不需要导包)

m0_54230514的博客 138

java学习笔记——java API与包装类

java API与包装类 文章目录java API与包装类Java API概述Java API中常用的包java.lang包中常用类String类String内存图解String类中的转换String类中的判断String类中的获取功能枚举包装类概述总结自动装箱自动拆箱Math类Math.random() Java API概述 ​ Java API(Java Application Progra...

coydone的博客 289

从零开始学习 Java:简单易懂的入门指南之MAth、System(十二)

查看API文档,我们可以看到API文档中关于Math类的定义如下:Math类所在包为java.lang包,因此在使用的时候不需要进行导包。并且Math类被final修饰了,因此该类是不能被继承的。Math类包含执行基本数字运算的方法,我们可以使用Math类完成基本的数学运算。要想使用Math类我们就需要先创建该类的对象,那么创建对象就需要借助于构造方法。因此我们就需要首先查看一下API文档,看看API文档中针对Math类有没有提供对应的构造方法。通过API文档来查看。

m0_59230408的博客 2133

Java API 01

DAY01 .JDK API JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口)就是一些已写好、可供直接调用的功能(在Java语言中,这些功能以类的形式封装)。 JDK API 包含的类库功能强大,经常使用的有:字符串操作、集合操作、文件操作、输入输出操作、网络操作、多线程等等 JDK包结构:    JDK中经常...

tangjiarui2009的博客 203

Java基础教程——Math类

Math Java这种级别的编程语言怎么可能没有数学相关的操作呢? java.lang.Math类提供了基本数学运算的方法。 该类是final的,说明不能被继承。 该类的构造方法是私有的(private),说明不让实例化; 该类中的所有方法都是静态的,均可以通过类名直接调用; Math类中有两个常量: |-PI:圆周率π |-E:自然常量(约为2.71828) public static fina...

weixin_30640291的博客 140

Java常用API

Java常用API 一、String类 java.lang.String类的使用 (一)概述 String:字符串,使用一对"“引起来表示,”"里可以为空。 String声明为final的,不可被继承 String 实现了Serializable接口:表示字符串是支持序列化的。 实现了Comparable接口:表示String可以比较大小 String内部定义了final char[] value用于存储字符串数据 String:代表不可变的字符序列。简称:不可变性。 体现: 4.1.当对字

weixin_45977186的博客 407

Java常用类库-Math-个人学习总结

java.lang.Math 方法 作用 1 sqrt 求一个数的正平方根。参数为NaN或小于零时,结果为NaN。 public static double sqrt​(double a) pow 求a的b次方 public static double pow​(double a, double b) round 求参数四舍五入到最接近的 int值。 public static int round​(float a) abs 求绝对值 public static int abs​

PaiZhong的博客 599

五、常用类(三)Math & Number类 & BigDecimal类

今天的博客主题 基础篇 --》常用类 --》Math & Number类 Math类 Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。 Math 的方法都被定义为 static 形式,通过 Math 类可以直接调用。 官方文档:https://docs.oracle.com/javase/8/docs/api/jav...

小萝卜.的博客 659

Java基础-常用API的使用方法(Math,System,Runtime,Object,BigInteger,BigDecimal)(1)

tips:了解内容查看API文档,我们可以看到API文档中关于System类的定义如下:System类所在包为java.lang包,因此在使用的时候不需要进行导包。并且System类被final修饰了,因此该类是不能被继承的。System包含了系统操作的一些常用的方法。比如获取当前时间所对应的毫秒值,再比如终止当前JVM等等。要想使用System类我们就需要先创建该类的对象,那么创建对象就需要借助于构造方法。

爪蛙毁一生的博客 629

Java API学习(一)java包

在线中文api:http://tool.oschina.net/apidocs/apidoc?api=jdk-zhjava的api有java和javax2个包java和javax都是Java的API包,java是核心包,javax的x是extension的意思,也就是扩展包,它和java各有各的用处 先看java包,java下有14个包 1、java.applet 提供创建 applet

大雄的专栏 1571

全网最细java零基础学习就业课程教学之java基础篇8:JAVA常用类库1

java零基础就业

weixin_43841075的博客 206

Java知识点总结-API与异常

public String replace(CharSequence target, CharSequence replacement) 使用新值,将字符串中的旧值替换,得到新的字符串。public String substring(int beginIndex,int endIndex)根据开始和结束索引进行截取,得到新的字符串(包含头,不包含尾)是Java语言的一部分,它包含了Java编程的基础类,这些类是进行Java编程时必不可少的。public int length() 返回此字符串的长度。

qq_59270298的博客 444
下一篇: Java常用API 之 java.lang.Object类(附解析和示例)_02
coder__666
博客等级 码龄9年 42粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值