java int相除向上取整_java实战项目常用类,Date、Calendar、BigDecimal、Math、UUID

Java开发中经常用到的类和方法,以下主要就日期是时间处理、金融数字处理、数学计算、随机数、MD5加密等。

java.util.Date类

java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。日期时间的本质是一个long,它表示从1970-1-1 0:0:0.000以来的毫秒数。

System.currentTimeMillis() 可以得到当前系统时间所表示的毫秒数.

java.util.Date类

getYear(): 自1900年以来的年数

getMonth(): 0-11

getDate(): 1-31

getHours(): 0-23

getMinutes(): 0-59

getSeconds(): 0-59

getDay(): 0(sunday)-6(saturday)

getTime(): 自1970-1-1以来的毫秒数

toLocaleString(): 转换为本地格式的字符串

日期比较

Java使用以下三种方法来比较两个日期:

1. 使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

2. 使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3. 使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

使用 SimpleDateFormat 格式化日期

java.text.SimpleDateFormat类支持String和Date的转换。SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。例如:

8b18b309b18968b0635fe4a02acfac21.png

java.util.Calendar类

从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现。在设计上,Calendar类的功能要比Date类强大很多。当然在实现方式上Calendar比Date类要复杂一点点。

创建一个代表系统当前日期的Calendar对象

Calendar c = Calendar.getInstance();//默认是当前日期

创建一个指定日期的Calendar对象

使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

//创建一个代表2009年6月12日的Calendar对象

Calendar c1 = Calendar.getInstance();

c1.set(2009, 6 - 1, 12);

Calendar类对象常用方法

getInstance(): 得到当前日期和时间

set(): 可以只设定某个字段,且其它所有的数值会被重新计算

add(): add(Calendar.DATE, 10); 表示为10天后的日期,其它所有的数值会被重新计算

get(): 得到某一部分的值,如:YEAR,MONTH,DAY_OF_YEAR ...

getTime(): 得到java.util.Date

setTime(Date): 用java.util.Date给Calendar赋值

Calendar类对象信息的获得

Calendar cal = Calendar.getInstance();

// 获得年份

int year = cal.get(Calendar.YEAR);

// 获得月份

int month = cal.get(Calendar.MONTH) + 1;

// 获得日期

int date = cal.get(Calendar.DATE);

// 获得小时

int hour = cal.get(Calendar.HOUR_OF_DAY);

// 获得分钟

int minute = cal.get(Calendar.MINUTE);

// 获得秒

int second = cal.get(Calendar.SECOND);

// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)

int day = cal.get(Calendar.DAY_OF_WEEK);

金融计算

java.math.BigDecimal类是java小数操作的一个专有类,在电商、金融行业 存储跟金额有关的字段。

思考:java里面明明已经有了,float,double这种精度的小数,为什么还需要BigDecimal呢?这难道不是多余吗?

接下来看一个例子:

@Test

public void testDoubleSimple() {

double a = 3;

double b = 10;

double c = a / b;

System.out.println(c);

}

控制台输出结果:0.3

在小数操作中,我们通常希望能有多种自由的定义方式。例如在不同的场景可能需要返回: 0.3, 0.4, 0.333 不同精度,在不同的精度进位时希望能自主控制。这个时候,就轮到BigDecimal出场了。

四则运算方法:

add()

subtract()

multiply()

divide()

41f68dc685ffd647adfe1eac1e0f502d.png
bccbae2e34a8dd28ebc617d73c0629b9.png

注意: 尽量传入String型参数来构造BigDecimal对象,这样才能避免计算误差。

MD5加密

MD5算法是不可逆的,与它同级别的算法还有SHA1, SHA256等。

jdk本身提供java.security.MessageDigest类,它实现了md5加密算法;除此之外,apache也提供更便捷的加密类。

5d5875f344b24462bc1428c326480d36.png

数学运算

java.lang.Math类

pow(): 求幂值

sqrt(): 求平方根

ceil(): 向上取整

floor(): 向下取整

random(): 生成随机的0-1的小数

round(): 四舍五入

abs(): 求绝对值

取随机值

java.util.Random类

这是一个伪随机序列生成器,可以给它提供一个种子(seed),不同的seed产生不同的随机数序列。

Random random = new Random(100);

部分方法:

nextInt()

nextDouble()

java.util.UUID类

这是一个标识符生成器, 它生成全局唯一的32位字符串.

部分方法:

randomUUID()

String uuid = UUID.randomUUID().toString().replaceAll("-", "");

//获取32位随机UUID值

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

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

相关文章

R语言中dim函数_R语言--向量化计算(apply族函数)

R语言最优秀的是它的向量化编程,这其中apply族函数扮演了非常重要的角色。apply族函数是由apply、sapply、lapply、mapply、tapply等函数组成的。熟练使用apply族函数,能够简化程序,提高代码的运算速度。软件&环境win10 64bitR 3.6.1appl…

谷歌浏览器中文版_中国科学家设计超薄指尖传感器,厚度不到A4纸五分之一 / 谷歌发布地图时光机:百年前,你家街道啥样?/ AI看图说话首超人类...

关注我们了解计算机视觉最新动态 !动态先览1中国科学家设计超薄指尖传感器,厚度不到A4纸五分之一2谷歌发布地图「时光机」:100年前,你家街道长啥样?3仿真环境跟车2分钟,就让自动驾驶系统撞上马路牙子&#…

300小时成为java程序员_直击面试现场: Java程序员3轮6小时面试, 成功拿到阿里offer!...

原标题:直击面试现场: Java程序员3轮6小时面试, 成功拿到阿里offer!今天给大家分享一位Java程序员小伙去阿里应聘的经历!从Java开发要掌握的技术来讲,前面已经说得差不多了。我主要想从面试者的角度谈一谈看法。如果是我面试,就给…

anaconda python3.8目录_MacBook Pro 安装anaconda、配置环境

新入手了MacBook Pro,iOS系统还不算非常熟练...作为一个新手程序员,在python开发道路上的学习就从安装环境开始吧:1、下载安装包2、安装过程一路同意or继续...不过,mac上弹出不允许在当前路径安装,那么选择自定义安装路…

stm32外部中断_STM32学习笔记 | 电源管理及低功耗设计要点

一款好的电子产品,都需要认真考虑电源管理的问题,电池供电的产品更应该注意低功耗的实现。 STM32电源介绍嵌入式开发直播课 - STM32 USART串口的应用 - 创客学院直播室​www.makeru.com.cn每一块STM32芯片中都有一个电源控制器(PWR&#xff0…

delphi 调用浏览器内核_HFL:基于混合模糊测试的Linux内核漏洞挖掘

RemarksConference: NDSS 2020Full Paper: HFL: Hybrid Fuzzing on the Linux KernelSummary针对的问题: Linux 操作系统内核安全漏洞的发现需要新技术。现有解决方案的不足:当前的模糊测试技术难以直接应用于内核安全漏洞发现。提出的创新方案概述&…

隔行变色java代码_jquery入门—选择器实现隔行变色实例代码

1、JQuery选择器继承了CSS、path语音的部分语法,允许通过标签名、属性名、内容对DOM元素进行快速、准确的选择。2、JQuery选择器与JavaScript相比,具有代码简单、完善的检测机制的优势。3、使用JQuery选择器实现隔行变色,示例代码如下&#x…

角标越界 Java_【新人求助】利用占位符操作数据库是总是提示数组角标越界是怎么回事 - Java论坛 - 51CTO技术论坛_中国领先的IT技术社区...

用占位符和数组来操作数据库总是提示下角标越界,找了半天也没弄明白哪里有问题,这个地方是跟着云课堂老师的讲解做的,只不过操作的数据表不一样,但是老师那个就没问题,我就出了问题,如果有大神能帮忙看看&a…

简述ospf的工作原理_现代数字存储示波器的工作原理简述

示波器是一种用途十分广泛的电子测量仪器。俗话说,电是看不见摸不着的。但是示波器可以帮我们“看见”电信号,便于人们研究各种电现象的变化过程。所以示波器的核心功能,就和他的名字一样,是显示电信号波形的仪器,以供…

pyecharts 间距_高月双色球20108期:红球首尾间距参考29区段

双色球第2020108期奖号为:03 09 11 24 25 28 16,红球和值:100,重号2个:11 28,首尾间距:25。和值:上期和值为100,上升了22点,再次开出小和值,最近…

java类中声明log对象_用于Android环境,java环境的log打印,可打印任何类型数据

LogXixi用于Android环境,java环境的log打印,可打印任何类型数据,根据android项目环境debug环境自动打开,release环境自动关闭android环境log打印,规范bean对象,json,xml对应log,crash捕捉&#…

xbox手柄接收器驱动_xbox手柄连接 win10电脑

xbox手柄 连接win10笔记本 分为三种连接方式:有线蓝牙无线适配器首先说明一下连接方式的特点然后说明连接方式第一种:有线连接 手柄直接通过micro USB数据线和win10电脑连接。这一步最简单,一般电脑会自动安装驱动,连接之后可以使…

单片机复位后为什么要对sp重新赋值_51单片机系列之2点亮第一个led小灯

点亮led灯简单的理解就是要求阳极高电平阴极低电平。接下来我们去看看单片机的原理图,找到led 模块。如图可以看到led的阳极是连接的VCC(电源高电平)阴极连接的接口是单片机的I/O口P20到P27.要想led点亮只需控制单片机I/O口输出低电平即可(单片机I/O口默认高电平)。…

关机时无人照管更新正在运行_无法抗拒的未来:无人叉车在内部物流中已成为现实...

自动化和半自动化的叉车不再是新奇的东西,在人力短缺的仓库中取得了进展。他们最终会成为规范吗?目前尚不知道全世界有多少辆无人驾驶叉车(也称为自动叉车、机器人叉车或者AGV)售出。但是叉车生产商都显示出,它在该领域的迅速增长。重要的是&#xff0c…

打开浏览器不是主页_对于360浏览器的一些小小改善

​虽然自己不怎么喜欢,但是以前小编的多数同事都在使用它,所以今天带来360安全浏览器改造的小建议。整理&排版 | idea君 ,预计阅读 | 4分钟文章意在学习交流分享,如有侵权请联系删除封面:http://www.pexels.com/zh…

c++ 二次开发 良田高拍仪_六枝特良田LYV-850加工中心导轨配套防护罩日常维修

六枝特良田LYV-850加工中心导轨配套防护罩日常维修我厂生产的防护罩质量可与原厂的一样,同样的保障,质保期为一年,护罩安装不合适支持退换货。尤其是元件连结的接合面刚度,对加工精度影响较大。通常,采用组合夹具时其尺…

atomikosdatasourcebean mysql_SpringBoot2整合JTA组件实现多数据源事务管理

一、JTA组件简介1、JTA基本概念JTA即Java-Transaction-API,JTA允许应用程序执行分布式事务处理,即在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序对JTA的支持极大地增强了数据访问能力。XA协议是数据库层面的一套分布式事务管理的规范,JTA…

crt 8.7.3 黑暗模式_民谣缠绕厄运金属,抒情中的黑暗故事

2020/7/31,瑞典厄运/重金属乐队Dun Ringill,发表了新专辑“Library of Death”。“Library Of Death”是瑞典乐队Dun Ringill的第二张唱片,由The Order of Israfel、Doomdogs等成员发起。乐队的声音,介于重金属和厄运金属之间&…

前窗玻璃膜贴了一周还有气泡_关于车窗玻璃的养护你了解多少?

【中国皮卡网 维修保养】车窗玻璃的养护是最容易忽视的,但它也是非常重要的,虽然在用车过程中我们很少直接接触车窗玻璃,但是它却时时刻刻在影响着驾驶者。相信很多人会有洗车的习惯,洗好之后的车窗玻璃非常明亮,不仅仅…

c语言新龟兔赛跑_幽默 | 新龟兔赛跑

新龟兔赛跑作者 / 何必加自从输给了乌龟后,兔子心里很是生气。这一天,他又遇见了乌龟,要求和他比赛,一定要一雪前耻。乌龟答应了,并且约定连比三场。第一场还是兔子输了,原来他一着急,跑错了方向…