Math类:
在Math类里面提供的方法都是static型的方法;因为Math类没有普通方法,
public class test {
public static void main(String args[]) {
System.out.println(Math.round(15.5)); //16
System.out.println(Math.round(-15.5)); //-15
System.out.println(Math.round(-15.51)); //-16
}
}
如果进行负数的四舍五入时,操作的数据的小数位大于0.5才进位,小于等于0.5不进位;
Random类:
public class test {
public static void main(String args[]) {
Random rand = new Random();
for (int x = 0; x < 10; x++) {
System.out.print(rand.nextInt(100) + "、"); //0~99可以选
}
}
}
Random类可以实现随机数;
BigInteger:
有2个很大的数据(超过了double)进行计算,你应该怎么做?
利用String可以准确的保存;如果两位数字真的很大需要进行计算,那么应该将其变为String类型,然后按位取出每一个字符保存的数据进行运算;
大数据进行操作有 2 种,分别是 BigInteger 和 BigDecimal (大浮点型)两种
BigDecimal:
BigDecimal本身也支持大量的数据运算,它有一个更好的用处:准确的实现四舍五入操作;之前使用过的Math.round()方法实现的四舍五入操作,所有的小数位都被四舍五入了;
BigDecimal里面没有直接提供四舍五入的操作,但是可以使用除法实现;
class MyMath {
/**
* 实现准确位数的四舍五入计算
* @param num 要进行四舍五入计算的数字
* @param scale 要保留的小数位
* @return 处理后的四舍五入数据
*/
public static double round(double num, int scale) {
BigDecimal bigA = new BigDecimal(num);
BigDecimal bigB = new BigDecimal(1);
return bigA.divide(bigB, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
}
public class test {
public static void main(String args[]) {
System.out.println(MyMath.round(19.555655547781, 2));
}
}
Date类:
java.util.Date的类表示当前时间;
几个重要方法:
- 无参构造方法:public Date();
- 有参构造方法:public Date(long date),接收long型数据;
- 转换为long型:public long getTime(),date型数据转换为long型数据;
日期处理:SimpleDateFormat
主要使用的几个方法:(很重要)
- 构造方法:public SimpleDateFormat(String pattern),需要转换模式;
- 将Date转换为String,public final String format(Date date)
- 将String转换为Date,public date parse(String source)throws ParseException
对于常见的转换单位:年(yyyy)、月(MM)、日(dd)、时(HH)、分(mm)、秒(ss)、毫秒(SSS)
import java.text.SimpleDateFormat;
import java.util.Date;
public class test {
public static void main(String args[]) {
Date date = new Date();
SimpleDateFormat adf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS");
String str = adf.format(date);
System.out.println(str);
}
}
关于数据类型转换总结:
- Date与String类之间的转换依靠的是SimpleDateFormat;
- String与基本类型之间的转换依靠的是包装类与String.valueOf()方法;
- long与Date转换依靠的是Date提供的构造以及getTime()方法;
Calendar类:
主要进行简单的日期计算;
这是一个抽象类,应该依靠子类进行对象的实例化操作;但是这个类里面有一个方法返回正是本类对象;
import java.util.Calendar;
public class test {
public static void main(String args[]) {
Calendar cal = Calendar.getInstance();// 取得本类对象
StringBuffer buf = new StringBuffer();
buf.append(cal.get(Calendar.YEAR)).append("-");
buf.append(cal.get(Calendar.MONTH) + 1).append("-");
buf.append(cal.get(Calendar.DAY_OF_MONTH)).append(" ");
buf.append(cal.get(Calendar.HOUR_OF_DAY)).append(":");
buf.append(cal.get(Calendar.MINUTE)).append(":");
buf.append(cal.get(Calendar.SECOND));
System.out.println(buf);
}
}
可以对日期进行一些简单的运算;