JavaSE-Java工具类

推荐先阅读JavaSE

BigDicimal类

public static BigDecimal valueOf(double val);// 包装浮点数成为大数据对象。创建对象的方式(最好的方式:)
public BigDecimal add(BigDecimal value);// 加法运算
public BigDecimal subtract(BigDecimal value);// 减法运算
public BigDecimal multiply(BigDecimal value);// 乘法运算
public BigDecimal divide(BigDecimal value);// 除法运算
public double doubleValue();// 把BigDecimal转换成double类型。

// 1.把浮点数转换成大数据对象运算
double a = 0.1 ;
BigDecimal a1 = BigDecimal.valueOf(a);
BigDecimal b1 = BigDecimal.valueOf(b);
BigDecimal c1 = a1.add(b1); // 加法
BigDecimal c1 = a1.divide(b1); // 除法

// BigDecimal只是解决精度问题的手段,double数据才是我们的目的!!
double rs = c1.doubleValue();


package com.zx._05BigDecimal计算浮点型;


import java.math.BigDecimal;

/**
目标:BigDecimal大数据类。

引入:
浮点型运算的时候直接+ * / 可能会出现数据失真(精度问题)。
BigDecimal可以解决浮点型运算数据失真的问题。

BigDicimal类:
包:java.math.
创建对象的方式(最好的方式:)
public static BigDecimal valueOf(double val) :包装浮点数成为大数据对象。
方法声明
public BigDecimal add(BigDecimal value) 加法运算
public BigDecimal subtract(BigDecimal value) 减法运算
public BigDecimal multiply(BigDecimal value) 乘法运算
public BigDecimal divide(BigDecimal value) 除法运算
public double doubleValue():把BigDecimal转换成double类型。
*/
public class BigDecimalDemo {
public static void main(String[] args) {
// 浮点型运算的时候直接+ * / 可能会出现数据失真(精度问题)。
System.out.println(0.1 + 0.2);
System.out.println(0.09 + 0.01);
System.out.println(1.0 - 0.32);
System.out.println(1.015 * 100);
System.out.println(1.301 / 100);

System.out.println("-------------------------");
double a = 0.1 ;
double b = 0.2 ;
double c = a + b ;
System.out.println(c);

// 1.把浮点数转换成大数据对象运算
BigDecimal a1 = BigDecimal.valueOf(a);
BigDecimal b1 = BigDecimal.valueOf(b);
//BigDecimal c1 = a1.add(b1); // 加法
BigDecimal c1 = a1.divide(b1); // 除法
System.out.println(c1);

// 结果可能需要继续使用!!!
// BigDecimal只是解决精度问题的手段,double数据才是我们的目的!!
double rs = c1.doubleValue();
System.out.println(rs);
}
}

System系统类

public static void exit(int status);// 终止JVM虚拟机,非0是异常终止。
public static long currentTimeMillis();// 获取当前系统此刻时间毫秒值。

arraycopy(Object src,int srcPos ,Object dest, int destPos, int length);// 可以做数组的拷贝(了解)
// 参数一:原数组
// 参数二:从哪个索引位置开始赋值
// 参数三:目标数组
// 参数四:目标数组的开始索引:
// 参数五:复制几个
int[] arrs1 = new int[]{10 ,20 ,30 ,40 ,50 ,60 ,70};
int[] arrs2 = new int[6]; // [ 0 , 0 , 0 , 0 , 0 , 0]
System.arraycopy(arrs1,2, arrs2 , 1 , 3);// arrs2 = [0 , 30 , 40 , 50 , 0 , 0 ]

System.exit(0); // 终止当前虚拟机 0代表正常终止!!
long time = System.currentTimeMillis();// 得到系统当前时间毫秒值

package com.zx._04System系统类的使用;

import java.text.SimpleDateFormat;
import java.util.Arrays;

/**
目标:System系统类的使用。
System代表当前系统。
静态方法:
1.public static void exit(int status):终止JVM虚拟机,非0是异常终止。
2.public static long currentTimeMillis():获取当前系统此刻时间毫秒值。
3.可以做数组的拷贝。
arraycopy(Object var0, int var1, Object var2, int var3, int var4);
* 参数一:原数组
* 参数二:从原数组的哪个位置开始赋值。
* 参数三:目标数组
* 参数四:赋值到目标数组的哪个位置
* 参数五:赋值几个。
*/
public class SystemDemo {
public static void main(String[] args) {
System.out.println("程序开始。。。");

// 1.终止当前虚拟机
//System.exit(0); // 0代表正常终止!!

// 2.得到系统当前时间毫秒值
long time = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf.format(time));

// 3.可以做数组的拷贝(了解)
int[] arrs1 = new int[]{10 ,20 ,30 ,40 ,50 ,60 ,70};
int[] arrs2 = new int[6]; // [ 0 , 0 , 0 , 0 , 0 , 0]
// arrs2 = [0 , 30 , 40 , 50 , 0 , 0 ]
/**
arraycopy(Object src,int srcPos ,Object dest, int destPos, int length)
参数一:原数组
参数二:从哪个索引位置开始赋值
参数三:目标数组
参数四:目标数组的开始索引:
参数五:复制几个
*/
System.arraycopy(arrs1,2, arrs2 , 1 , 3);
System.out.println(Arrays.toString(arrs2));

System.out.println("程序结束。。。");
}
}

java.lang.Math

public static int abs(int a);                  // 获取参数a的绝对值:
public static double ceil(double a); // 向上取整 Math.ceil(4.00000001); // 5.0
public static double floor(double a); // 向下取整 Math.floor(4.99999999); // 4.0
public static double pow(double a, double b); // 获取a的b次幂 Math.pow(2 , 3); // 2^3 = 8.0
public static long round(double a); // 四舍五入取整 Math.round(4.49999); // 4 Math.round(4.500001); // 5

java.time.LocalDateTime

LocalDateTime currentTime = LocalDateTime.now(); // 获取当前的日期时间
LocalDate date = currentTime.toLocalDate();
Month month = currentTime.getMonth();
int day = currentTime.getDayOfMonth();
int seconds = currentTime.getSecond();

LocalDateTime date = currentTime.withDayOfMonth(10).withYear(2012);

// 12 december 2014
LocalDate date = LocalDate.of(2014, Month.DECEMBER, 12);

// 22 小时 15 分钟
LocalTime date = LocalTime.of(22, 15);

// 解析字符串
LocalTime date = LocalTime.parse("20:15:30");

️SimpleDateFormat

public String format(Date date);// 可以把日期对象格式化成我们喜欢的时间形式,返回的是字符串!
public String format(Object time);// 可以把时间毫秒值格式化成我们喜欢的时间形式,返回的是字符串!
public Date parse(String date) throws ParseException;// 把字符串的时间解析成日期对象

// 得到此刻日期对象
Date date = new Date();
// 得到当前时间的时间毫秒值
long time = date.getTime();
// 创建一个简单日期格式化对象负责格式化日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
// 格式化时间得到格式化的字符串时间形式
String rs = sdf.format(date);
// 格式化时间毫秒值
String rs = sdf.format(time);
String date = "2019-11-04 09:30:30";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date newDate = sdf.parse(date);