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 允许你选择任何用户自定义日期时间格式来运行。例如:

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()

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

MD5加密

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

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

数学运算

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值

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

  1. java int相除向上取整_Java基础篇——Java运算符

    Java运算符按功能可分为:算数运算符.关系运算符.逻辑运算符.位运算符.赋值运算符和条件运算符. 算数运算符 算术运算符包括通常的加(+).减(-).乘(*).除(/).取模(%),完成整数型和浮点 ...

  2. java int相除向上取整_Java工程师(4).运算符

    什么是运算符 运算符可以对两个变量的值执行运算,运算过程由CPU完成. 都有哪几类运算符 Java中的运算符主要包含以下几类: 算术运算符 赋值运算符 关系运算符 逻辑运算符 算术运算符 算术运算符用 ...

  3. 解决java中浮点数相除向上取整出错的方法

    实际应用中,经常可以遇到浮点数之间相除然后向上取整,比如客流量与常量之比和店员数之间就应向上取整,多一个人都应该加一名员工. 先谈谈什么是向上取整,什么是向下取整 上取整,不管四舍五入的规则,只要后面 ...

  4. Java两整数相除向上取整

    前言:Java中两个整数相除,如果不能整除,默认是向下取整的.例如:11 除以 3 的结果是 3.然而,某些情况下(eg. 把11个糖果,每3个分一堆,不足三个也分成一堆,可以分几堆?),我们需要向上 ...

  5. java 向上取整_java 中的异常处理和常用类使用

    一.异常: 1.异常的简单介绍: Throwable类 / Error Exception | | Unchecked Checked Runtime Exception Exception Exce ...

  6. java保留两位小数并向上取整_Java取整,固定保留两位小数,适配负数、金融数字。...

    文/阿敏其人 本文出自阿敏其人简书博客,转载请注明出处和连接. 整数前的0去掉. 小数固定保留两位小数 兼容负数 数字检测 适配金融大数额 核心类 public class BigDecimalStr ...

  7. Java int类型的除法 向上取整 向下取整 保留小数位数

    今天做了一道计算题,用到整数相除的向上取整,突然卡住了.然后查询并试用了如下方法. 一.三目运算法(向上 / 向下取整 快捷.准确) 两个int型 a.b,a / b 向上取整.可以使用 a / b ...

  8. java 为什么 X/Y的向上取整可以用(X+Y-1)/Y导出

    int型数据相除默认会向下取整,如果我们希望对某个除式(x/y)的结果向上取整, 1.可以使用 工具类Math中的静态方法ceil() 2.可以使用 也可以使用(x+y-1)/y的结果 这个公式的原理 ...

  9. Java中的向上取整 Math.ceil(double)

    在调外部接口获取列表数据时, 需要判断是否已经取完了所有的值,因此需要用到向上取整. Math.ceil()函数就是向上取整,即取大于参数的最小整数值. 只要参数有小数,都会去掉小数位,将整数位加一( ...

最新文章

  1. android如何设置默认关闭虚拟按钮,android – Chrome自定义标签更改默认关闭按钮不起作用...
  2. 由于Eclipse版本不符造成的异常
  3. Magento: 单产品(product)或者当前类别(category)最大和最小价格 Min/Max Product Price in a Category...
  4. Bootstrap 拼接式按钮菜单
  5. python爬虫免费代理池_Python爬取免费代理搭建代理池
  6. HTML中常见问题汇总贴
  7. 贝格数据携手清华大学“勘探”大数据富矿
  8. 从零基础入门Tensorflow2.0 ----一、3.2 实战深度神经网络(批归一化)
  9. Java基础---Java---基础加强---内省的简单运用、注解的定义与反射调用、 自定义注解及其应用、泛型及泛型的高级应用、泛型集合的综合
  10. 【相机标定系列】相机成像的理想模型原理,相机矩阵分解
  11. 卸载cad专用软件工具箱 一键安装卸载,安全可靠
  12. (类比较器)java对比两个相同实体类中属性的值的差异
  13. 【Python】详解pandas的isin索引和~反向索引
  14. FPGA-DDR总线电源硬件设计技巧-Fly-by走线阻抗
  15. smarty-wap端
  16. 广告投放中的预算问题
  17. ES9023音频解码芯片的工作原理
  18. Android 第三方支付
  19. 北京中医药大学22春《生物化学B》平时作业1【专职辅导答案】
  20. 何学林:房价为什么降不下来?房价上涨的刚性是由强大的利益共同体共同作用的结果(原创首发,深度好文)——何学林房地产大策划之十二

热门文章

  1. css-四种css导入方式
  2. android线性布局快捷键,【整理】Android图形界面知识学习与总结之:Linear Layout线性布局...
  3. 查看计算机或网络资源列表的命令,dos命令net view图文教程,显示网络计算机列表查看共享资源...
  4. 输入文字自动生成图片_原来Word还可以自动生成图片和图表目录!
  5. mongodb php代码实例,php操作mongoDB实例分析
  6. qt使用自带的日志输出实例输出日志时,在日志中显示行数
  7. Java zset 应用_Java简单使用redis-zset实现排行榜
  8. 单链表(不带头结点)
  9. c语言api_用C语言来拓展python的功能
  10. springboot中接口实例化_AngularJs中控制器的定义,实例化,作用域范围