news 2026/5/1 0:23:35

Java学习日记——DAY10

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java学习日记——DAY10

今天学习了Java中的Math,Random,Enum,BigDecimal/BigInteger,System类:

1.Math类:Math类提供了大量的数学计算工具,Math是final修饰的终结类不能被继承,Math的方法都是static修饰的,可直接通过类名来调用;

2.Math类常用方法:

abs():用来求绝对值;

ceil():用来求大于这个数的最小整数,以double类型返回;

floor():用来求小于这个数的最大整数,以double类型返回;

max/min(int/float/double/long,int/float/double/long):求两个数的最大值或最小值;

random():获得一个0-1的随机数,返回值为double类型;

round(float/double):获得四舍五入后的值,返回值为int或long;

sqrt():开根号,返回值为double类型,如果输入负数则返回NaN;

pow(底数,次方):求底数的次方数;

sin/cos/tan():求三角函数值;

3.Random类:根据起源数字进行迭代变化,产生随机数,Random生成的是伪随机数,相同种子数在相同次数下的随机数相等;

构造方法:

Random():利用系统时间来默认作为种子数进行迭代;

Random(long):自己提供种子数来迭代;

常见方法:

nextInt/Long():生成一个int/long类型的随机数;

nextInt(int):生成一个0-给定值范围的随机int值;

nextFloat/Double():生成一个0-1范围内的float/double类型的数字;

nextBoolean():生成一个随机的boolean值,true和false的概率相等;

4.BigInteger/BigDecimal类(用于处理精确数值):

BigInteger类可以处理任意长度的整数;

BigDecimal类可以处理任意长度的浮点数;

创建方式:

BigInteger();

BigInteger(int/long):用long进行初始化时要在结尾加L;

BigInteger(数据,进制):将不同进制的数值转为十进制;

BigInteger.valueOf();

BigDecimal();

BigDecimal.valueOf();

Scanner的对象:nextBigDecimal(),nextBigInteger();

常见方法:

add():加法;

subtract():减法;

multiply():乘法;

remainder():取余;

divide():除法,BigInteger只保留整数部分,且没有四舍五入,BigDecimal的用法与它完全不同;

divideAndRemainder():除法并取余,返回一个Integer数组,数组中有两个元素,一个是商一个是余数;

doubleValue():将BigDecimal转换为double类型;

max/min():求最大值/最小值;

对于BigDecimal的divide:语法:divide(BigDecimal数据,小数点后保留几位,RoundingMode)

5.BigDecimal的八种RoundingMode:

(1)UP:可看作在数轴上向着远离0的方向进行舍取;

(2)DOWN:可看作在数轴上向着0的方向进行舍取;

(3)HALF_UP:四舍五入;

(4)HALF_DOWN:五舍六入;

(5)HALF_EVEN:如果舍入值前一位是奇数则四舍五入,如果是偶数则五舍六入;

(6)CEILING:可看作在数轴上向着正无穷的方向进行舍取;

(7)FLOOR:可看作在数轴上向着负无穷的方向进行舍取;

(8)UNNECESSARY:如果舍入值是0则正常处理,如果舍入值不是0则异常处理;

6.Enum枚举:

列举,从给定的值中做选择

语法:

[修饰符] Enum 枚举名{};

所有的枚举类型实际上是继承了java.lang.Enum类;

枚举中定义的都是static和final修饰的常量;

values():用来以数组形式返回枚举的每个常量;

valueOf():将字符串转换为枚举的实例;

ordinal():用来返回枚举成员的索引;

compareTo():用来比较在枚举中常量定义的顺序;

7.Timer类:

用于实现定时任务;

常见的方法就是schedule(),语法为schedule(TimerTask,第一次实现延迟的时间,间隔执行的时间);

TimerTask是一个抽象类,需要有子类来重写抽象run方法。

在schedule方法中的TimeTask通常用内部类来实现;

cancel():用于终止计时器;

8.System类:

位于Java.lang.System

常见方法:

currentTimeMillis:获取从1970年1月1日零点零分零秒到现在的毫秒数;

exit(0):退出Java虚拟机,0表示正常退出,否则则是异常退出;

getenv(String):获取指定的环境变量;

getProperty(String):获取指定的系统属性;

getProperties():返回所有的系统属性,是Properties类型的;

arraycopy(数组1,起始位置,数组2,起始位置,长度):从原数组指定位置拷贝指定长度到指定数组的指定位置,会覆盖指定数组原来已有元素;

gc():执行垃圾回收

如有错误,还请批评斧正。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:39:17

基于SpringBoot+Vue的高校物品捐赠管理系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】

摘要 随着社会公益意识的增强和高校规模的扩大,校园内物品捐赠活动日益频繁,传统的人工管理方式效率低下且易出错。高校物品捐赠管理系统的开发旨在解决这一问题,通过信息化手段优化捐赠流程,提高资源分配效率。该系统能够实现捐赠…

作者头像 李华
网站建设 2026/4/18 2:29:09

PageGuard 组件工作原理分析

## 1. 组件概述PageGuard 是一个*路由权限守卫组件*,用于保护页面访问权限。它通过检查当前路由路径是否在用户有权限访问的菜单列表中,来决定是否允许用户访问该页面。## 2. 核心工作流程## 3. 权限判断逻辑### 3.1 权限判断核心代码useEffect(() > …

作者头像 李华
网站建设 2026/5/1 7:54:13

LobeChat是否支持SSE流式输出?详细协议分析

LobeChat 是否支持 SSE 流式输出?一场关于实时交互的技术深潜 在今天,用户早已不再满足于“输入问题、等待几秒、突然弹出整段回答”的机械式 AI 交互。他们期待的是更自然的对话节奏——就像对面坐着一个人,边思考边说出下一句话。这种体验…

作者头像 李华
网站建设 2026/5/1 7:54:13

从图表图像中智能提取数据的革命性解决方案

还在为论文中的精美图表无法获取原始数据而头疼吗?WebPlotDigitizer这款开源工具正在重新定义图表数据提取的边界,让每一位研究者都能轻松实现从图像到数字的完美转换!💫 【免费下载链接】WebPlotDigitizer Computer vision assis…

作者头像 李华
网站建设 2026/5/1 7:54:15

《最长有效括号问题的算法解析与优化:栈方法的理论与实践》

最长有效括号问题的算法解析与优化:栈方法的理论与实践摘要最长有效括号问题是字符串处理领域的经典算法问题,要求在仅包含(和)的字符串中,找出格式正确且连续的最长括号子串长度。本文以栈方法为核心,系统分析其算法原理、时间 /…

作者头像 李华
网站建设 2026/5/1 7:37:06

SwiftUI 中的动态 UI 效果

在 iOS 开发中,用户界面的动态效果往往能大大提升用户体验。今天我们将探讨如何在 SwiftUI 中实现一个动态变色的 Picker,根据优先级选择器的不同选项,动态改变背景颜色。这不仅让界面更加生动,也能直观地反映出优先级的重要性。 背景 在 SwiftUI 中,Picker 组件的样式化…

作者头像 李华