Math
final修饰,构造方法是私有的,方法static修饰。
常用方法
//常用方法(ceil、floor返回都是double类型)
public static void test() {
//取整 ,返回大于目标数的最大整数
System.out.println(Math.ceil(4.8)); //5.0
//取整 ,返回小于目标数的最小整数
System.out.println(Math.floor(4.8)); //4.0
}
//笔试题
public void test(){
if(5>Math.floor(4.8)){
System.out.println("==");
}else if(5<Math.ceil(4.8)){
System.out.println("===");
}else{
}
}
//常用方法
public static void test2() {
//找出最大值
System.out.println(Math.max(2.3 , 4.5)); //4.5
// 四舍五入取整
System . out .println("Math.round(2.3 ): " + Math.round(2.3)); //Math.round(2.3 ): 2
// 返回1个伪随机数,该值大于等于0.0小于1.0 [0,1)
System. out. println ("Math.randorn(): " + Math.random()) ; //Math.randorn(): 0.4405422288588675
}
//Random 类生成随机数
public static void test3() {
Random random=new Random();
int i=random.nextInt(10); //[0,10)
System. out. println (i);
}
//随机数int.猜数游戏
public static void test4() {
Random random=new Random();
int i=random.nextInt(10); //[0,10)
Scanner sc=new Scanner(System.in);
while(true) {
System. out. println ("请输入一个数:");
int num=sc.nextInt();
if(num>i) {
System. out. println ("大于随机数");
}else if(num>i){
System. out. println ("小于随机数");
}else{
System. out. println ("猜对了!!!");
break;
}
}
}
日期相关的类
Date
Java提供了Date类来处理日期、时间(此处的Date是指java.util包下的Date类,而不是java.sql包下的Date类)。
Date类提供了6个构造器,其中4个已经Deprecated (Java 不再推荐使用),剩下的两个构造器如下。
➢Date(): 生成一个代表当前日期时间的Date对象。该构造器在底层调用System.currentTimeMillis()获得long整数作为日期参数。
➢Date(long date);根据指定的long型整数来生成-一个 Date对象。该构造器的参数表示创建的Date对象和GMT 1970年1月1日00:00:00 之间的时间差,以毫秒作为计时单位。
为了更好地格式化日期、解析日期字符串,Java 提供了SimpleDateFormat 类。
SimpleDateFormat是DateFormat 的子类,正如它的名字所暗示的,它是“简单”的日期格式器。很多人对“简单"的日期格式器不屑一顾,实际上SimpleDateFormat比DateFormat更简单,功能更强大。
创建SimpleDateFormat对象时需要传入一个pattern 字符串,这个patterm不是正则表达式,而是一个日期模板字符串。
//Date
public static void test() {
System.out.println(new Date()); //Wed Jul 29 10:18:31 CST 2020
}
public static void test1() throws ParseException {
//日期和字符串的转换
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //大小写要区分
//把日期date类型转成字符串
System.out.println(sdf.format(new Date())); //2020-07-29 10:34:32
//把字符串类型的日期转成日期Date类型(格式必须是规范时的格式,否则报异常)
String strDate="2020-07-29 10:34:32";
System.out.println(sdf.parse(strDate)); //Wed Jul 29 10:34:32 CST 2020
}
Calendar类
因为Date 类在设计上存在一些缺陷,所以Java 提供了Calendar 类来更好地处理日期和时间。Calendar是一个抽象类(由子类创建对象),它用于表示日历。
Calendar与Date都是表示日期的工具类,它们直接可以自由转换,如下代码所示。
//创建一个默认的Calendar对象
Calendar c=Calendar.getInstance();
System.out.println(c);
//int get(int field):返回指定日历字段的值。
//2020-7-29
System.out.println(c.get(Calendar.YEAR)+
"-"+(c.get(Calendar.MONTH)+1)+
"-"+c.get(Calendar.DAY_OF_MONTH));
//从Calendar对象中取出Date对象(Calendar——>Date)
System.out.println(c.getTime()); //Wed Jul 29 11:04:23 CST 2020
执行System.out.println©; 结果如下:
所以Calendar类的month是从0开始
LocalDate类
jdk 8 新增的时间日期类
(final修饰的类可以创建对象,LocalDate有private修饰的构造方法)
//jdk 8 新增的时间日期类
LocalDate d=LocalDate.now();
LocalTime t=LocalTime.now();
LocalDateTime dt=LocalDateTime.now();
System.out.println(d); //2020-07-29
System.out.println(t); //11:07:35.618369400
System.out.println(dt); //2020-07-29T11:07:35.618369400