JAVA基础20----常见的工具类

  package com.guada.math;
    
    public class Demo1_Math {
    
    	/**
    	 * 常见的Math类的方法
    	 * Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。 
    	 *  E :double值比其他任何一个都更接近 e ,自然对数的基数。  
    		 PI :double值比任何其他的更接近 pi ,圆周长与其直径的比率。 
    	   	abs(double a) :返回值为 double绝对值。 
    	   	ceil(double a) :返回大于或等于参数的最小(最接近负无穷大) double值,等于一个数学整数
    	   	floor(double a) :返回小于或等于参数的最大(最接近正无穷大) double值,等于一个数学整数。 
    	   	max(double a, double b) :返回两个 double值中的较大值  min.
    	   	pow(double a, double b) :将第一个参数的值返回到第二个参数的幂。  
           random() :返回值为 double值为正号,大于等于 0.0 ,小于 1.0 。  
           round(float a) :返回参数中最接近的 int ,其中 int四舍五入为正无穷大。 
           sqrt(double a) :返回的正确舍入正平方根 double值。
    
    
    	 */
    	public static void main(String[] args) {
    		System.out.println(Math.E);
    		System.out.println(Math.PI);
    		System.out.println(Math.abs(-10));
    		System.out.println(Math.ceil(12.3));
    		System.out.println(Math.floor(12.3));
    		System.out.println(Math.max(3, 4));
    		System.out.println(Math.pow(3.0, 4.0));
    		
    	}
    
    }
  package com.guada.math;
    
    import java.util.Random;
    
    public class Demo2_Random {
    
    	/**
    	 * Random类
    	 * 该类的实例用于生成伪随机数的流。
    	 * 如果使用相同的种子创建两个Random Random ,并且对每个实例进行相同的方法调用序列,则它们将生成并返回相同的数字序列。 
    	 * Random() :创建一个新的随机数生成器。  
    		Random(long seed) :使用单个 long种子创建一个新的随机数生成器。  
    		nextInt() :返回下一个伪随机数,从这个随机数发生器的序列中均匀分布 int值。  
    		int nextInt(int bound) :返回伪随机的,均匀分布 int值介于0(含)和指定值(不包括),从该随机数生成器的序列绘制。 
    	 */
    	public static void main(String[] args) {
    		Random r = new Random();
    		for(int i = 0;i<10;i++) {
    			System.out.println(r.nextInt());
    		}
    		System.out.println(r.nextInt(1000));
    		System.out.println(r.nextInt(1000));               //输出1000以内的整数,不包含1000
    	}
    
    }
  package com.guada.math;
    
    public class Demo3_System {
    
    	/**
    	 * A:System类的概述
    	 * 	System类包含一些有用的 类字段和方法,不能被实例化
    	 * B:成员方法
    	 * 	public static void gc()
    	 * 	public static void exit(int  status)
    	 * 	public  static long currentTimeMills()
    	 * 	public static void arraycopy (Object src,int srcPos,Object dest,int destPos,int length)
    	 * 
    	 */
    	public static void main(String[] args) {
    	//	demo1();
    	// demo2();
    	//	demo3();
    		demo4();
    	}
    
    	public static void demo4() {
    		int arr [] = {11,22,33,44,55,66};
    		int arr1 [] = new int[8];
    		for (int i = 0; i < arr1.length; i++) {
    			System.out.println(arr1[i]);
    		}
    		System.arraycopy(arr, 0, arr1, 0, arr.length);
    		for (int i = 0; i < arr1.length; i++) {
    			System.out.println(arr1[i]);
    		}
    	}
    
    	public static void demo3() {
    		long start = System.currentTimeMillis();
    		for (int i = 0; i <  1000; i++) {
    			System.out.println("*");
    		}
    		long end = System.currentTimeMillis();                     //获取当前时间的毫米值
    		System.out.println(end-start);
    	}
    
    	public static void demo2() {
    		System.exit(0);                 //退出JAVA虚拟机jvm,非0状态是异常终止
    		System.out.print("LLLLLLLLLL");
    	}
    
    	public static void demo1() {
    		for (int i = 0; i < 10; i++) {
    			new Demo();
    			System.gc();
    		}
    	}
    
    }
    
     class Demo{                  //同一个源文件中只允许存在一个public类
    
    	@Override
    	protected void finalize()  {
    		System.out.println("收取垃圾");
    	}                          
    	 
    }
  package com.guada.math;
    
    import java.math.BigInteger;
    
    public class Demo4_BigInteger {
    
    	/**
    	 * A:BigInteger的概述
    	 * 	可以让超过Integer范围内的数据进行运算
    	 * B:构造方法
    	 * 	public BigInteger(String val)
    	 * C:成员方法
    	 * 	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 static void main(String[] args) {
    		BigInteger bi1 = new BigInteger("1000");
    		BigInteger bi2 = new BigInteger("2");
    		
    		System.out.println(bi1.add(bi2));
    		System.out.println(bi1.divide(bi2));
    		System.out.println(bi1.multiply(bi2));
    		System.out.println(bi1.mod(bi2));
    		
    		BigInteger b [] = bi1.divideAndRemainder(bi2);
    		for (int i = 0; i < b.length; i++) {
    			System.out.println(b[i]);
    		}
    		
    	}
    
    }
package com.guada.math;

import java.math.BigDecimal;

public class Demo5_Bigdecimal {

	/**
	 * A:BigDecimal的概述
	 * 	由于在运算的时候,float类型和double很容易丢失精度
	 * 	所以,为了能精确的表示,bigdecimal更加精确计算浮点数
	 *   	不可变的,任意精度的有符号十进制数
	 * B:构造方法
	 * 	public BigDecimal(String val)
	 * C:成员方法
	 * 	public BigDecimal add (BigDecimal augend)
	 * 	public BigDecimal subtract  (BigDecimal subtrahend)
	 * 	public BigDecimal multiply(BigDecimal multiplicand)
	 * 	public BigDecimal divide(BigDecimal divisor)
	 */
	public static void main(String[] args) {
		BigDecimal b1 = new BigDecimal("1.0");
		BigDecimal b2 = new BigDecimal("0.9");
		System.out.println(b1.subtract(b2));
		
		BigDecimal b3 = BigDecimal.valueOf(2.0);
		BigDecimal b4 = BigDecimal.valueOf(1.1);
		System.out.println(b3.subtract(b4));
	}

}
7.

package com.guada.math;

import java.util.Date;

public class Demo6_Date {

	/**
	 *A:Date类的概述
	 *		类Date表示特定的瞬间,精确到毫秒
	 *B.构造方法
	 *		public Date()
	 *		public Date(long date)
	 *C:成员方法
	 *		public long getTime()
	 *		public void setTime(long time)
	 */
	public static void main(String[] args) {
	//	demo1();
		Date d1 = new Date();
		System.out.println(d1.getTime());                            //通过
		
		System.out.println(System.currentTimeMillis());
		

	}

	public static void demo1() {
		Date d1 = new Date();             //创建一个Date对象
		
		System.out.println(d1);             //输出当前系统时间
		Date d2 = new Date(0);           
		
		System.out.println(d2);
	}

}

8.


```java
package com.guada.math;

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

public class Demo7_DateFormat {

	/**
	 * A:DateFormat类的概述
	 * 		DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间,是 抽象类,所以使用其子类SimpleDateFormat
	 * B:SimpleDateFormat构造方法
	 * 		public SimpleDateFormat()
	 * 		public SimpleDateFormat(String pattern)
	 * C:成员方法
	 * 		public final String format (Date date)
	 * 		public  Date parse (String source)
	 * @throws ParseException 
	 */
	public static void main(String[] args) throws ParseException {
		 //demo1();
	    //	demo2();
	   //	demo3();
	  //demo4();
		demo5();
	
	}

	public static void demo5() throws ParseException {
		//计算从出生到现在一共活了多少天
		String birthday = "2000年10月01日";
		String today = "2019年09月25日";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
		Date d1 = sdf.parse(birthday);
		Date d2 = sdf.parse(today);
		long day = d2.getTime()-d1.getTime();
		System.out.println(day/1000/60/60/24);
	}

	public static void demo4() throws ParseException {
		//将字符串转换成时间对象
			
			String str = "2000年02月02日";
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
			Date d =  sdf.parse(str);

			System.out.println(d);
	}

	public static void demo3() {
		Date d = new Date();                                                  //获取当前时间
		SimpleDateFormat sdf = new SimpleDateFormat("Y/M HH:mm:ss");   //创建日期格式化类
		System.out.println(sdf.format(d));                                  //2019/9 16:24:24    将时间对象转换成字符串
	}

	public static void demo2() {
		Date d = new Date();                                                  //获取当前时间
		SimpleDateFormat sdf = new SimpleDateFormat();   //创建日期格式化类
		System.out.println(sdf.format(d));                              //19-9-25 下午4:16按照此类格式输出
	}

	public static void demo1() {
		//DateFormat df = new DateFormat();                                 //DateFormat 是抽象类,不允许对象实例化
		DateFormat df = DateFormat.getDateInstance();                //相当于父类引用指向子类对象
		System.out.println(df);
	}

}
package com.guada.math;

import java.util.Calendar;
import java.util.Scanner;

public class Demo8_Calendar {

	/**
	 * A:Calendar类概述:
	 * 	Calendar类是一个抽象类,它为特定的瞬间与一组诸如YEAR,MONTH,DAY_OF_MONTH,HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如过去下星期的日期)提供了一些方法.
	 * B:成员方法
	 * 	public static Calendar getInstance()
	 * 	public int get(int field)
	 * C:add()和set()方法
	 * 	成员方法:
	 * 		public void add (int field,int amount)
	 * 		public final void set (int year,int month ,int date)
	 * 
	 */
	public static void main(String[] args) {
	//	demo1();
	//	demo2();
		//键盘录入一个年,判断是平年还是闰年
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入年份");
		int num = sc.nextInt();
		Calendar c = Calendar.getInstance();
		c.set(num,2,1);
		c.add(Calendar.DAY_OF_MONTH, -1);
		System.out.println(c.get(Calendar.DAY_OF_MONTH));
		if(c.get(Calendar.DAY_OF_MONTH)==29) {
			System.out.println(num+"年是闰年");
		} else {
			System.out.println(num + "年是平年");
		}
	}

	public static void demo2() {
		Calendar c= Calendar.getInstance();
		c.add(Calendar.YEAR, 1);
		System.out.println(c.get(Calendar.YEAR));                // 2020	
		c.set(Calendar.YEAR,2021);
		System.out.println(c.get(Calendar.YEAR));
	}
	
	public static void demo1() {
		Calendar c = Calendar.getInstance();                     //父类引用指向子类对象
		System.out.println(c);
		System.out.println(c.get(Calendar.YEAR));
		
		System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"
				+c.get(Calendar.DAY_OF_MONTH)+"日"+getWeek(c.get(Calendar.DAY_OF_WEEK)));    //输出当前的年月日星期几
	}
	
	public static String getWeek(int week) {
		String []  s = {"星期一","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
		return s[week];
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值