Java基础总结14
一、Math类
1.1 概述
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
1.2 成员变量
- public static final double E :自然底数
- public static final double PI:圆周率
1.3 成员方法
- public static int abs(int a):取绝对值。
- public static double ceil(double a):向上取整。
- public static double floor(double a):向下取整。
- public static int max(int a,int b):获取最大值。
- public static int min(int a, int b):获取最小值。
- public static double pow(double a,double b):获取a的b次幂。
- public static double random():获取随机数 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
- public static int round(float a):四舍五入。
- public static double sqrt(double a):获取正平方根。
二、Random类
2.1 概述
此类的实例用于生成伪随机数。
2.2 构造方法
- public Random():没有给定种子,使用的是默认的(当前系统的毫秒值)。
- public Random(long seed):给定一个long类型的种子,给定以后每一次生成的随机数是相同的。
2.3 成员方法
- public int nextInt():没有参数 表示的随机数范围 是int类型的范围
- public int nextInt(int n):可以指定一个随机数范围
- void nextBytes(byte[] bytes):生成随机字节并将其置于用户提供的空的 byte 数组中。
三、System类
3.1 概述
System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。
3.2 成员方法
-
public static void gc():调用垃圾回收器。
-
public static void exit(int status):退出java虚拟机 0 为正常退出非0为异常退出。
-
public static long currentTimeMillis():获取当前时间的毫秒值。
- currentTimeMillis方法就是获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
import java.util.Date; public class SystemDemo { public static void main(String[] args) { //获取当前时间毫秒值 System.out.println(System.currentTimeMillis()); } }
3.3 练习
验证for循环打印数字1-9999所需要使用的时间(毫秒):
public class SystemTest1 {
public static void main(String[] args) {
long start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println("共耗时毫秒:" + (end - start));
}
}
四、BigDecimal类
4.1 概述
由于在运算的时候,float类型和double很容易丢失精度,演示案例。所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal。
4.2 构造方法
- public BigDecimal(String val):将 BigDecimal 的字符串表示形式转换为 BigDecimal。
4.3 成员方法
- public BigDecimal add(BigDecimal augend):加
- public BigDecimal subtract(BigDecimal subtrahend):减
- public BigDecimal multiply(BigDecimal multiplicand):乘
- public BigDecimal divide(BigDecimal divisor):除
- public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):scale小数点后面保留几位。
五、Date类
5.1 概述
Date类 表示特定的瞬间,精确到毫秒。
5.2 构造方法与成员方法
构造方法:
- public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
- public Date(long date):把一个long类型的毫秒值转换成一个日期对象。
成员方法:
- public void setTime(long time):给一个日期对象设置上指定的毫秒值。
六、SimpleDateFormat类
6.1 概述
SimpleDateFormat: 可以把一个日期对象格式化成一个文本(字符串) , 也可以把一个日期字符串解析成一个日期对象。
6.2 构造方法
- public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象。
- public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象。
6.3 格式规则
标识字母(区分大小写) | 含义 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
6.4 成员方法
- public String format(Date date):把一个日期对象格式化成一个字符串。
- public Date parse(String dateStr):把一个日期字符串解析成一个日期对象注意要以指定格式解析。
6.5 练习
- 需求:算一下你来到这个世界多少天?
public class Test1 {
public static void main(String[] args) throws ParseException {
System.out.println("请输入出生日期:格式 1990-01-01");
String s = new Scanner(System.in).next();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date birthdayDate = sdf.parse(s);
Date todayDate = new Date();
long birthdaySecond = birthdayDate.getTime();
long todaySecond = todayDate.getTime();
long cha= todaySecond - birthdaySecond;
if(cha<0){
System.out.println("输入错误!");
}else {
System.out.println(cha/1000/60/60/24);
}
}
}
七、Calendar类
7.1 概述
Calendar 类是一个抽象类,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象。例如:
import java.util.Calendar;
public class MyTest1 {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
}
}
7.2 常用方法
- public int get(int field):返回给定日历字段的值。
- public void set(int field, int value):将给定的日历字段设置为给定值。
- public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
- public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
7.3 练习
- 需求:键盘录入任意一个年份,获取任意一年的二月有多少天。
import java.util.Calendar;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
System.out.println("请输入年份:");
int i = new Scanner(System.in).nextInt();
Calendar cal = Calendar.getInstance();
cal.set(i,2,1);
cal.add(Calendar.DAY_OF_MONTH,-1);
int day = cal.get(Calendar.DAY_OF_MONTH);
System.out.println("二月有"+day+"天");
}
}