day14 Java学习(常见对象)
常见对象(Math 类)
Math: 用于执行基本数学运算的方法,如初等指数,对数,平方根,三角函数。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
System.out.println(Math.abs(-15.2)); // Math.abs() 取绝对值。 System.out.println(Math.ceil(15.3)); // Math.ceil() 结果向上取整,是double类型。 System.out.println(Math.floor(12.9)); // Math.ceil() 结果向下取整,是double类型。 System.out.println(Math.max(-16.2, 16.1)); // Math.max() 比较结果大小,取最大值 System.out.println(Math.min(-16.2, 16.1)); // Math.min() 比较结果大小,取最小值 System.out.println(Math.pow(1,10 )); // Math.pow() 取前面位置的次方,是double类型。 System.out.println(Math.random()); //随机生成0.0到1.0之间的小数,包括0.0,不包括1.0。 System.out.println(Math.round(15.8)); //四舍五入。 System.out.println(Math.sqrt(9)); //参数的平方根。
常见对象(Random类)
Random:此类用于生产随机数。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Random r = new Random(); //无参的。 int a = r.nextInt(); //随机生成正负数。 System.out.println(a); int x = r.nextInt(100); // 随机生成0到n-1d的随机数, System.out.println(x); Random d = new Random(1000); //有参的。 int b= d.nextInt(); //如果输出变量不变随机生成的数也不变。 System.out.println(b); 成员方法
常见对象(System类)
System:包含一些有用的类字段和方法。它不能被实例化。
在一个源文件中不允许定义两个用 public 修饰的类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
System.exit(0); //非0状态是异常终止,推出jvm long start = System.currentTimeMillis(); // 获取当前时间的毫秒值。 for (int i = 0; i < 1000; i++) { System.out.println("*"); } long end = System.currentTimeMillis(); System.out.println(end - start); // 计算当前方法所用的时间。 int[] src = { 22, 55, 44, 6 }; int[] dest = new int[8]; System.arraycopy(src, 0, dest, 0, src.length); // 将数组内容拷贝 成员方法
常见对象(BigInteger类)
概述: 可以让超过 Integer 范围内的数据进行运行。
构造方法: public BigInteger( String val )
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
BigInteger b1 = new BigInteger("2"); BigInteger b2 = new BigInteger("1"); System.out.println(b1.add(b2)); // + System.out.println(b1.subtract(b2)); // - System.out.println(b1.multiply(b2)); // * System.out.println(b1.divide(b2)); // /(除) BigInteger [] arr= b1.divideAndRemainder(b2);//取除数h和余数 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } 成员方法
常见对象(BigDecimal类)
概述: 由于在运算时,floa 和 double 很容易丢失精度,所以为了精确表示,Java提供了BigDecimal。
构造方法: public BigDecimal( String val )
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
BigDecimal b=new BigDecimal("2"); //通过构造传入字符串方式,开发时推荐 BigDecimal b1=new BigDecimal("1.1"); System.out.println(b.subtract(b1)); //通过类名 . 调用valueOf()方法 BigDecimal a = BigDecimal.valueOf(7); // 这种方式在开发也是推荐的 BigDecimal a1=BigDecimal.valueOf(1.1); System.out.println(a.subtract(a1)); 成员方法
常见对象(Date类)
Date类是 util包 的,不能导入 Sql包的
*Date表示特定的瞬间,精确到毫米。
构造方法:
public Date( )
public Date(long date)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Date d1 = new Date(); //如果没有传参数,代表的是当前时间。 System.out.println(d1.getTime()); // getTime() 通过时间对象获取毫秒值 System.out.println(System.currentTimeMillis()); //通过系统类的方法获取当前时间毫秒值 d1.setTime(1000); // 设置毫秒值,改变时间对象。 System.out.println(d1); Date d2 = new Date(0); //如果参数为0, 代表的是1970年一月一日。 System.out.println(d2); //通过毫秒值,创建时间对象。
常见对象(SimpleDateFormat类)
DateFormat类的概述:
*DateFormat是日期/格式化子类的抽象,它以语言无关的方式格式化并解析日期或时间。是抽象类,无法New对象。所以使用其子类SimpleDateFormat。
SimpleDateFormat构造方法:
public SimpleDateFormat( )
public SimpleDateFormat(String pattern)
成员方法:
public final String format ( Date date )
public Date parse ( String source )
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Date d = new Date(); // 获取当前时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm :ss"); // 创建日期格式化对象 System.out.println(sdf.format(d)); //format() 将日期对象转化为字符串 String sj="2019年05月25日 08:08:08"; SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); Date d1=sdf1.parse(sj); // parse() 将时间字符串转换成日期对象 System.out.println(d1);
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//需求:计算出生多少天 // 将出生日期和今天日期存在String类型变量中 String birthday = "1996年07月12日"; String today = "2019年05月25日"; // 定义日期格式化对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); // 将日期字符串转换日期对象 Date d1 = sdf.parse(birthday); Date d2 = sdf.parse(today); // 通过日期对象获取时间毫秒值 long time = d2.getTime() - d1.getTime(); // 将其相减除以1000,再除以60,再除以60,再除以24得到天 long Day = time / 1000 / 60 / 60 / 24; System.out.println(Day);
常见对象(Calendar类)
概述:Calendar是一个抽象类,它为特定瞬间与一组注入 :YEAR,MONTH,DAY_OF_MONTH,HOUR等日历字段自建的转换提供了一些方法。
成员方法:
* public static Calendat getInstance( )
* public int get (int field )
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Calendar a = Calendar.getInstance(); // 父类引用指向子类对象 System.out.println(a.get(Calendar.YEAR)); // 通过字段获取年 System.out.println(a.get(Calendar.MONTH) + 1); // 通过字段获取月份(月份是从0开始编号的) System.out.println(a.get(Calendar.DAY_OF_MONTH)); // 通过字段获取月份的某一天 System.out.println(a.get(Calendar.DAY_OF_WEEK)); // 周日是第一天,周六最后一天
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
while (true) { Scanner S= new Scanner(System.in); System.out.println("请输入年份"); String line =S.nextLine(); int year = Integer.parseInt(line); // 将数字字符串转换为数字 boolean b=getYear(year); if (b==true) { System.out.println("闰年"); }else { System.out.println("平年"); } } } private static boolean getYear(int year) { // TODO 自动生成的方法存根 Calendar c = Calendar.getInstance(); // 设置那一年的3月一日 c.set(year, 2, 1); c.add(Calendar.DAY_OF_MONTH, -1); //判断是否是29天 return c.get(Calendar.DAY_OF_MONTH)==29; }
// 创建日期格式化对象