计算机基础-编程语言 JavaSE基础笔记 Java常用类

本文介绍了Java中Math类的常用数学运算方法,如绝对值、开方、随机数生成等,并展示了如何计算三角形面积。同时,讲解了Random类用于生成伪随机数的功能,包括不同类型的随机数生成。此外,还探讨了新日期时间包的使用,如获取当前时间并以不同格式显示,以及如何进行日期计算。最后,通过示例展示了如何利用LocalDate计算特定日期条件(如星期一且日期为11号)的场景。
摘要由CSDN通过智能技术生成

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)

返回两者中较大的一个

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

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

运行结果如下:

 

源代码部分:

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类生成随机数。

运行结果:

源码部分

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常用类之日期时间类

 

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

 运行结果:

源代码部分:

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号的日期。

运行结果:

源代码部分:

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));
			}
		}
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simon_Smith

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值