Math类,随机数Random类,System类,BigInteger类,BigDecimal类,Date类,Calendar类

Math类概述:Math 类涵盖了很多执行基本数学运算的方法, 是一个工具类。
package com.sxt.mathdemo;

/*
 * Math类概述:Math 类涵盖了很多执行基本数学运算的方法, 是一个工具类。
	成员方法
	public static int abs(int a)  求绝对值
	public static double sqrt(double 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()  生成随机数
	public static int round(float a)  四舍五入
 */
public class MathDemo01 {
	public static void main(String[] args) {
		System.out.println(Math.abs(-3));
		System.out.println(Math.sqrt(4));
		System.out.println(Math.ceil(2.2));
		System.out.println(Math.floor(1.2));
		System.out.println(Math.max(10, Math.max(20, 30)));
		// System.out.println(Math.min(a));
		System.out.println(Math.pow(2, 3));
		System.out.println(Math.random());
		System.out.println(Math.round(4.5));
		
		for (int i = 0; i < 1000; i++) {
			System.out.println(getRandomNum(20, 30));
		}
	}

	// 练习: 书写一个方法生成任意范围的随机数
	public static int getRandomNum(int start, int end) {
		return (int) (Math.random() * (end - start + 1) + start);
	}
}
Random类概述:生成随机数
package com.sxt.randomdemo;

import java.util.Random;

/*
 * Random类概述:生成随机数
	构造方法
	public Random()
	public Random(long seed)
	成员方法
	  public int nextInt() 生成int范围内的随机数
	  public int nextInt(int n)	
	  
	    7
		5
		6
		4
		2
		9
		1
		5
		4
		0
 */
public class RandomDemo01 {
	public static void main(String[] args) {
		Random random = new Random(1000L);
//		random.setSeed(1000L);
		for (int i = 0; i < 10; i++) {
//			System.out.println(random.nextInt());
			System.out.println(random.nextInt(10));
//			System.out.println(random.nextBoolean());
			
		}
		
	}
	
	// 练习: 书写一个方法生成任意范围的随机数
	public static int getRandomNum(int start, int end) {
		return (int) (Math.random() * (end - start + 1) + start);
	}
}

System类概述:System 类包含一些有用的类字段和方法。它不能被实例化。
package com.sxt.systemdemo;

import java.io.IOException;

/*
 * System类概述:System 类包含一些有用的类字段和方法。它不能被实例化。
 
	成员方法
	public static void gc()  运行垃圾回收器
	public static void exit(int status)  终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止
	public static long currentTimeMillis()  返回以毫秒为单位的当前时间
	
	Runtime
	exec(String command) 
 */
public class SystemeDemo {
	public static void main(String[] args) throws IOException {
//		System.out.println("21313");
//		System.exit(0);
//		System.out.println("over");
		
		Runtime rt = Runtime.getRuntime();
//		rt.exit(0);
		Process process = rt.exec("calc");
//		try {
//			Thread.sleep(5000);
//		} catch (InterruptedException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		process.destroy();
		
		
	}
}
BigInteger类概述:对于超出int范围内的数据进行运算
package com.sxt.bigintegerdemo;

import java.math.BigInteger;
import java.util.Arrays;

/*
 * BigInteger类概述:对于超出int范围内的数据进行运算
	构造方法
	public BigInteger(String val)
	成员方法
	public BigInteger add(BigInteger val)
	public BigInteger subtract(BigInteger val)
	public BigInteger multiply(BigInteger val)
	public BigInteger divide(BigInteger val)
	public BigInteger[] divideAndRemainder(BigInteger val)	
 */
public class BigIntegerDemo {
	public static void main(String[] args) {
		int i = Integer.MAX_VALUE + 1;
		System.out.println(i);
		
		BigInteger bi = new BigInteger("2147483648");
		System.out.println(bi.add(new BigInteger("1")));
		System.out.println(bi.subtract(new BigInteger("1")));
		System.out.println(bi.multiply(new BigInteger("10")));
		System.out.println(bi.divide(new BigInteger("10")));
		
		System.out.println(Arrays.toString(new BigInteger("4").divideAndRemainder(new BigInteger("5"))));
	}
}

BigDecimal类概述:不可变的、任意精度的有符号十进制数。
package com.sxt.bigdecimaldemo;

import java.math.BigDecimal;
import java.util.Arrays;

/*
 * 在一些金融项目当中,在进行小数运算的时,float、double很容易丢失精度为了能精确的表示、计算浮点数,Java设计了BigDecimal。
	BigDecimal类概述:不可变的、任意精度的有符号十进制数。
	
	构造方法
	public BigDecimal(String val)
	成员变量
	public BigDecimal add(BigDecimal augend)
	public BigDecimal subtract(BigDecimal subtrahend)
	public BigDecimal multiply(BigDecimal multiplicand)
	public BigDecimal divide(BigDecimal divisor)
	
	数据库中数值类型对应着Java当中Bigdecimal类型
 */
public class BigDecimalDemo {
	public static void main(String[] args) {
		System.out.println(0.01 + 0.09);
		System.out.println(1.0 - 0.33);
		System.out.println(1.015 * 100);
		System.out.println(1.301 / 100);
		
		BigDecimal bd = new BigDecimal("100");
		bd.doubleValue();
		bd.shortValue();
		
		System.out.println(new BigDecimal("0.01").add(new BigDecimal("0.09")));
		System.out.println(new BigDecimal("1.0").subtract(new BigDecimal("0.33")));
		System.out.println(new BigDecimal("1.015").multiply(new BigDecimal("100")));
		System.out.println(new BigDecimal("1.301").divide(new BigDecimal("100")));
		System.out.println(Arrays.toString(new BigDecimal("4").divideAndRemainder(new BigDecimal("5"))));
	}
}

Date类概述:类 Date 表示特定的瞬间,精确到毫秒。
package com.sxt.datedemo;

import java.util.Date;

/*
 * Date类概述:类 Date 表示特定的瞬间,精确到毫秒。 
	构造方法
	public Date()  根据当前的默认毫秒值创建日期对象
	public Date(long date)  根据给定的毫秒值创建日期对象
	  成员方法
	public long getTime()  获取时间,以毫秒为单位
	public void setTime(long time))  设置时间	
	
	java.util.Date 和 java.sql.Date相互转换
	数据库中的日期类型对应着Java当中的java.sql.Date
	
	2017年12/24
 */
public class DateDemo01 {
	public static void main(String[] args) {
		Date d = new Date();
		System.out.println(d);
		
		String dateStr = String.format("北京时间为您报时:%tF %tT", d,d);
		System.out.println(dateStr);
		
		Date d2 = new Date(2000L);
		System.out.printf("北京时间为您报时:%tF %tT%n", d2,d2);
		
		long time = System.currentTimeMillis();
		System.out.println(time);
		Date d3 = new Date(1548399263787L);
		System.out.printf("北京时间为您报时:%tF %tT%n", d3,d3);
		d3.setTime(1000L);
		System.out.printf("北京时间为您报时:%tF %tT%n", d3,d3);
		System.out.println(d3.getTime());
		
		java.util.Date utilDate = new java.util.Date();
		System.out.println(utilDate);
		java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
		System.out.println(sqlDate);
		
		
		java.sql.Date sqlDate2 = new java.sql.Date(1000L);
		java.util.Date utilDate2 = new java.util.Date(sqlDate2.getTime());
		System.out.println(utilDate2);
	}
}
格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化
package com.sxt.dateformatdemo;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
 * 格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化
 * 格式化 format  日期 -> 文本  
 * 	实体类 JavaBean 转换 字符串
 * 解析 parse
 * 	字符串 转换成 实体类 JavaBean
 * 
 * Date --> 字符串
 * 2019年01月25日 15:50:00 
 */
public class DateFormatDemo01 {
	public static void main(String[] args) throws ParseException {
		DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		String dateStr = df.format(new Date());
		System.out.println(dateStr);
		
		String dateTime = "2015/02/25 3点25分15秒";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd H点mm分ss秒");
		Date d = sdf.parse(dateTime);
		System.out.println(d);
	}
}
Calendar类概述:Calendar 类是一个抽象类,
package com.sxt.calendardemo;

import java.util.Calendar;
import java.util.Date;

/*
 * Calendar类概述:Calendar 类是一个抽象类,
 * 它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法,瞬间可用毫秒值来表示。
	成员方法
	public static Calendar getInstance()
	public int get(int field)
	public void add(int field,int amount)
	public final void set(int year,int month,int date)		
 */
public class CalendarDemo {
	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();
		System.out.println(c);
		/*
		 * java.util.GregorianCalendar[
		 * time=1548403232593,
		 * areFieldsSet=true,
		 * areAllFieldsSet=true,
		 * lenient=true,
		 * zone=sun.util.calendar.ZoneInfo
		 * [id="Asia/Shanghai",
		 * offset=28800000,
		 * dstSavings=0,
		 * useDaylight=false,
		 * transitions=19,
		 * lastRule=null],
		 * firstDayOfWeek=1,
		 * minimalDaysInFirstWeek=1,
		 * ERA=1,
		 * YEAR=2019,
		 * MONTH=0,
		 * WEEK_OF_YEAR=4,
		 * WEEK_OF_MONTH=4,
		 * DAY_OF_MONTH=25,
		 * DAY_OF_YEAR=25,
		 * DAY_OF_WEEK=6,
		 * DAY_OF_WEEK_IN_MONTH=4,
		 * AM_PM=1,
		 * HOUR=4,
		 * HOUR_OF_DAY=16,
		 * MINUTE=0,
		 * SECOND=32,
		 * MILLISECOND=593,
		 * ZONE_OFFSET=28800000,
		 * DST_OFFSET=0]
		 */
		// public int get(int field)
		long time = c.getTimeInMillis();
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH);
		int day = c.get(Calendar.DAY_OF_MONTH);
		int hour = c.get(Calendar.HOUR);
		int minute = c.get(Calendar.MINUTE);
		int second = c.get(Calendar.SECOND);
		System.out.printf("现在是北京时间 %d/%s/%d %d:%d:%d,距离1970年一共经历了%d毫秒!!!%n",
				year,  (month + 1) < 10 ? ("0" + (month + 1)) : String.valueOf(month + 1), day, hour, minute, second, time);
		
		
		// public void add(int field,int amount)
		c.add(Calendar.YEAR, -100);
		c.add(Calendar.MONTH, -3);
		time = c.getTimeInMillis();
		year = c.get(Calendar.YEAR);
		month = c.get(Calendar.MONTH);
		day = c.get(Calendar.DAY_OF_MONTH);
		hour = c.get(Calendar.HOUR);
		minute = c.get(Calendar.MINUTE);
		second = c.get(Calendar.SECOND);
		System.out.printf("现在是北京时间 %d/%s/%d %d:%d:%d,距离1970年一共经历了%d毫秒!!!%n",
				year,  (month + 1) < 10 ? ("0" + (month + 1)) : String.valueOf(month + 1), day, hour, minute, second, time);
		
		// public final void set(int year,int month,int date)		
		c.set(5050, 11, 22, 12, 12, 12);
		time = c.getTimeInMillis();
		year = c.get(Calendar.YEAR);
		month = c.get(Calendar.MONTH);
		day = c.get(Calendar.DAY_OF_MONTH);
		hour = c.get(Calendar.HOUR_OF_DAY);
		minute = c.get(Calendar.MINUTE);
		second = c.get(Calendar.SECOND);
		System.out.printf("现在是北京时间 %d/%s/%d %d:%d:%d,距离1970年一共经历了%d毫秒!!!%n",
				year,  (month + 1) < 10 ? ("0" + (month + 1)) : String.valueOf(month + 1), day, hour, minute, second, time);
		
		// 如何实现Date和Calendar之间的相互转换
		Date d = new Date();
		Calendar cc = Calendar.getInstance();
		cc.setTime(d);
		System.out.println(cc);
		
		Date dd = new Date(cc.getTimeInMillis());
		System.out.println(dd);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值