Java常用类之Math类

Java提供Math工具类(java.lang.Math)专用于数学运算,该类有很多静态方法,能完成指数运算、对数运算、平方根运算和三角运算等,还有两个静态常量:E(自然对数)和PI(圆周率)。Math类是final型,不能派生子类。另外,它的构造方法是private类型,因此该类也不能被实例化。Math类的方法较多,这里仅列出部分常用的,如表5.3所示。

方    法

描     述

abs()

返回绝对值

floor(double d)

返回最大的double值,该值小于等于参数,并等于某个整数

pow(double a,double b)

返回第一个参数的第二个参数次幂的值

random()

返回带正号的double值,该值大于等于0.0且小于1.0

round(float a)

返回最接近参数的int

round(double a)

返回最接近参数的long

min(a,b)

返回两者中较小的一个

max(a,b)

返回两者中较大的一个

例题:输入三角形的三边长,求此三角形面积。

java里派怎么打 派在java中怎么打_java里派怎么打

将args的参数设置为  6 8 10、

运行结果如下:

 

java里派怎么打 派在java中怎么打_java_02

 

源代码部分:

TestMath.java

public class TestMath {
	public static void main(String[] args) {
		int a = 0;
		int b = 0;
		int c = 0;
		a = Integer.parseInt(args[0]);
		b = Integer.parseInt(args[1]);
		c = Integer.parseInt(args[2]);
		double area =0;
		double s = 0.0;
		s = 1.0/2*(a+b+c);
		area = Math.sqrt(s*(s-a)*(s-b)*(s-c));
		System.out.println("三角形的面积是"+area);
	}
}

Java常用类之Random类

java.util.Random类用于生成伪随机数,它有两个构造器:一个使用默认的种子(当前时间),每次运行生成结果是随机的;另一个需要程序员显式传入一个long型整数的种子,对于同一个种子每次运行生成的结果都一样。表5.4列出Random类的常用方法。

方    法

描    述

nextInt()

返回下一个int类型的伪随机数,其值在Integer.MIN_VALUE~Integer.MAX_VALUE(不含)之间

nextInt(int n)

返回下一个int类型的伪随机数,伪随机数的值大于或等于0并且小于参数n

nextLong()

返回下一个long类型的伪随机数,值在Long.MIN_VALUE~Long.MAX_VALUE之间

nextDouble()

返回下一个double类型的伪随机数,伪随机数的值大于或等于0,并且小于1.0

nextBoolean()

返回下一个boolean类型的伪随机数,伪随机数的值为true或false

例题:使用Random类生成随机数。

java里派怎么打 派在java中怎么打_随机数_03

运行结果:

java里派怎么打 派在java中怎么打_java里派怎么打_04

 

源码部分

TestRandom.java

import java.util.Random;
public class TestRandom {
	public static void main(String[] args) {
		Random r1 = new Random();
		Random r2 = new Random(100);
		Random r3 = new Random(100);
		System.out.println(r1.nextInt());		// 产生任意大小的随机整数
		System.out.println(r1.nextBoolean());
		System.out.println(r1.nextDouble());
		System.out.println(r1.nextFloat());
		System.out.println(r1.nextLong());
		System.out.println(r1.nextInt(100));		// 产生0至100的随机整数
		System.out.println(r2.nextInt()); 
		System.out.println(r3.nextInt());
	}
}

Java常用类之日期时间类

java里派怎么打 派在java中怎么打_System_05

 

java里派怎么打 派在java中怎么打_随机数_06

例题:使用新日期时间包获取当前系统时间,并以各种格式加以显示。

java里派怎么打 派在java中怎么打_随机数_07

 运行结果:

java里派怎么打 派在java中怎么打_System_08

 

源代码部分:

UseLocalDateTime.java 

import java.time.*;
import java.time.format.*;
class UseLocalDateTime {
	public static void main(String[] args) {
		LocalDate curDate = LocalDate.now();
		System.out.println(curDate);
		LocalTime curTime = LocalTime.now();
		System.out.println(curTime);
		LocalDateTime curDateTime = LocalDateTime.now();
		System.out.println(curDateTime);
		
		System.out.println(curDateTime.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT, FormatStyle.SHORT)));
		System.out.println(curDateTime.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM, FormatStyle.MEDIUM)));
		System.out.println(curDate.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)));
		
		System.out.println(curDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd-EEEE-hh-mm-ss")));
		System.out.println(curDateTime.format(DateTimeFormatter.ofPattern("yyyy/MM/dd/EEEE/hh/mm/ss")));
		
		LocalDate myDate = LocalDate.parse("10-25-2020", DateTimeFormatter.ofPattern("MM-dd-yyyy"));
		System.out.println(myDate);
		LocalDateTime myDateTime = LocalDateTime.parse("2020-10-25T07:35:27", DateTimeFormatter.ISO_LOCAL_DATE_TIME);
		System.out.println(myDateTime);
	}
}

Java常用类之日历应用

现在Java提供了更好的解决方案,LocalDate封装了由ISO 8601指定的Gregorian(格里高利历,即公历)日历,能实现与Calendar同样的功能,且更简单。

例题:打印10个既是星期一又是11号的日期。

java里派怎么打 派在java中怎么打_java_09

运行结果:

java里派怎么打 派在java中怎么打_System_10

 

源代码部分:

LocalCalendarDate.java

import java.time.*;
import java.time.format.*;
public class LocalCalendarDate {
	public static void main(String[] args) {
		//***********设定日期和时间格式**********************
		DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
		LocalDate calDate = LocalDate.now();
		System.out.println("System Date: " + calDate.format(formatter));
		int interval = calDate.getDayOfWeek().getValue() - 1;
		calDate = calDate.minusDays(interval);
		System.out.println("After Setting Day of Week to Friday: " + calDate.format(formatter));
		int monday11Count = 0;
		while(monday11Count < 10) {
			calDate = calDate.plusDays(7);		//增加7天得到下一个星期一
			//************判断星期一的那是否是11号**************
			if(calDate.getDayOfMonth() == 11) {
				monday11Count++;
				System.out.println(calDate.format(formatter));
			}
		}
	}
}