Java中一些常用类

Math类

两个常量

  1. 两个常量
  • E:自然对数的底数,2.718
  • PI:圆周率
  1. 常用方法
  • abs(数字类型):返回该参数的绝对值
  • cbrt(double d ):返回d的开立方根
  • sqrt(double d):返回d的正平方根
  • ceil(double d):返回d的向上取整
  • floor(double d):返回d的向下取整
  • max(int a,int b):返回a、b的较大值
  • min(int a,int b):返回a、b的较小值
  • random():返回0.000~0.999的随机数
  • round(double d):返回d四舍五入后的结果
public static void main(String[] args) {
		System.out.println(Math.E);
		System.out.println(Math.PI);
		System.out.println(Math.abs(-1.0));
		System.out.println(Math.abs(1));
		System.out.println(Math.cbrt(8));//立方根
		System.out.println(Math.cbrt(-8));
		System.out.println(Math.sqrt(4));//平方根
		System.out.println(Math.sqrt(-4));
		System.out.println(Math.ceil(100.3));//向上取整
		System.out.println(Math.floor(100.9));//向下取整
		System.out.println(Math.max(10, 20));//较大值
		System.out.println(Math.min(10, 20));//较小值
		System.out.println(Math.random()*30+30);//(0-1)随机数
		System.out.println(Math.round(100.5));//四舍五入
		System.err.println("111");//错误输出
	}

System类

用于描述系统资源的类型,该类不用创建对象,直接使用讲台变量和静态方法即可。

常用字段

  1.        System.in:标准的输入流,默认关联到键盘上
  2.        System.out:标准的输出流,默认关联到控制台
  3.        System.err:标准的错误输出流,默认关联到控制台,用于打印错误信息,在eclipse中,使用该流打印的字体是红色。

常用方法

  1. gc():强制垃圾或手气回收内存中的垃圾。
  2. exit(int status):结束虚拟机
  3. currentTimeMillis():返回当前时间的毫秒值,表示的是从1970年1月1日0时0分0秒开始到现在经历的毫秒值。1s = 1000ms

作用:

  1. 可以通过某些手段,将数字转换成时间对象、指定格式的字符串;
  2. 可以通过计算两次的差值,来获取某段代码的运行时间。
import java.util.Scanner;

public class Demo_System {
	/*static {
		System.exit(0);
	}*/
	//终止java虚拟机
	public static void main(String[] args) {
		/*System.out.println("nanase");
		System.err.println("nanase");*/
		//long start = System.currentTimeMillis();
		// concatString();//123
		//concatStringBuilder();//2
		//long end = System.currentTimeMillis();
		//System.out.println(end-start);
		test_out_err();
	}
	public static void concatString() {
		String str = "";
		for (int i = 0; i < 9999; i++) {
			str += "1";
		}
	}
	public static void concatStringBuilder() {
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < 9999; i++) {
			sb.append(i);
		}
	}
	public static void test_out_err() {
	Scanner sc = new Scanner(System.in);
	while(true) {
		String line = sc.nextLine();
		System.out.println(line);
		System.err.println("呵呵,我变颜色了");
	}
	}
}

Date

该类对象用于表示一个特定的瞬间,根据构造方法使用的不同,表示 不同的瞬间。

使用时需要导包     java.util.Date 不要导错包

构造方法:

大部分的构造方法都已经过时(可以使用,但是不建议使用,eclipse当中有横线)

  • Date():表示当前时间
  • Date(long time):表示一个时间对象,表示的是从1970年1月1日00:00:00时间经历过time毫秒之后的时刻。

成员方法

  1. after(Date d):比较调用者是否在参数d之后
  2. before(Date d):比较调用者是否在参数d之前。
  3. getTime():获取当前date对象描述的时间毫秒值。
  4. setTime(long time):将指定的毫秒值给当前的Date对象进行设置。
import java.util.Date;

public class Demo_Date {

	public static void main(String[] args) {
		Date nd  = new Date();
		Date od = new Date(0);
		System.out.println(nd.after(od));//调用的时间在不在参数之后
		System.out.println(nd.before(od));//调用的时间在不在参数之前
	}

	public static void test_Date() {
		Date date = new Date();
		System.out.println(date);
		Date date2 = new Date(0);
		System.out.println(date2);
	}
}

DateFormat

 

直接打印Date对象全是英文,不好阅读,需要有一个格式对象,将date对象的内容以制定的格式输出出来。

DateFormat类.是一个抽象类,不能创建对象,需要使用子类创建对象,有一个一直的子类simpleDateFormat类型。

DateFormat类型在text包中,在使用的时候需要导包

构造方法DateFormat():用于给子类去访问。

重要的成员方法

  • String format(Date date):将参数对象d,格式化为一个字符串。
  • Date parse(String str):将数字字符串str,解析成一个Date类型的对象。(parse:解析)

DateFormat是抽象类,无法创建对象,所以只能使用其子类来创建对象,并调用方法

所以可以使用DateFormat的子类SimpleDateFormat类型

就可以使用DateFormat中的方法。

SimpleDateFormat

构造方法

  • SimpleDateFormat():使用默认的格式创建对象
  • SimpleDateFormat(String pattern):使用给定的模式创建格式对象。

               一般用来表示年月日时分秒的用"yyyy-MM-dd-HH-mm-ss"

                 表示年月日用  "yyyy-MM-dd"

                        注意:HH是24小时计时,hh是12小时计时

 

  • Java中一些常用类_第1张图片
	public static void test_dateFormat() throws ParseException {
		Date date = new Date();
		Date date2 = new Date();
		System.out.println("Date默认格式:"+date);
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
		// 无参构造 默认格式
		String bString = simpleDateFormat.format(date2);
		System.out.println("SimpleDateFormat默认格式:"+bString);
		SimpleDateFormat simple = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
		// 有参构造 使用给定的格式
		String datesf = simple.format(date);
		System.out.println("给定格式:"+datesf);
		Date date3 = simple.parse(datesf);
		System.out.println("parse方法转换回date格式:"+date3);
	}

Calendar

概述

  1. 表示一个精确的时间瞬间,是一个包含了很多字段值的对象。
  2. Calendar是一个抽象类,无法直接创建对象
    1. 只能使用子类来创建对象
    2. 使用父类中的某个方法,来获取一个对象。
  3. Calendar获取对象的方式
    1. Calendar.getInstance():可以获取当前时间的Calendar对象,就已经把各个日历字段都初始化完成。
  4. 常用方法
    1. get、set方法用于获取和设置对象的时间。
    2. add方法可以为对象的某个字段增加值
    3. getTime():返回一个当前时间的date类型
    4. getTimeInmillis():获取对象描述的毫秒值。Calendar转毫秒

Calendar的set方法

get方法用于给定的一个字段获取字段的值,set方法根据给定的字段,修改Calendar类型的对象。

  1. setTimeInMillis(long millis) 从给定的长值设置此日历的当前时间。毫秒转Caledar
  2. Void set(int feild,int value)将指定的字段,设定为制定的值    如果写了不正确的时间值,会自动的进位。
  3. Void set(int year,int month,int date)给指定的Calendar对象设定年月日
  4. Void set(int year,int month,int date,int hourOfDay,int minute)给指定的日历对象设置年月日时分
  5. Void set(int year,int month,int date,int hourOfDay,int minute,int second)给当前的日历对象设置年月日时分秒

Calendar的Add方法

  1. 方法功能:在某个字段的基础上,进行偏移(参数描述的是变化,而不是变化的结果)
  2. Void add(int field,int offset)
  • 在feild的基础上,增加offset偏移量
	public static void test_set(Calendar c) {
		System.out.println(c.DAY_OF_MONTH);
		System.out.println(c.get(c.DAY_OF_MONTH));
		c.set(c.DAY_OF_MONTH, 32);
		System.out.println(c.DAY_OF_MONTH);
		System.out.println(c.get(c.DAY_OF_MONTH));
		c.set(c.YEAR, 2000);
		System.out.println(c.get(c.YEAR));
	}

	public static void test_get() {
		Calendar c = Calendar.getInstance();
		System.out.println(c.get(c.YEAR));
		System.out.println(c.get(c.MONTH));
		System.out.println(c.get(c.DAY_OF_MONTH));
		System.out.println(c.getTime());
		System.out.println(c.get(c.DAY_OF_WEEK));
		System.out.println(c.get(1));
		System.out.println(c.get(2)+1);
		System.out.println(c.YEAR);// 1
		System.out.println(c.get(c.YEAR));// 2019
		System.out.println(c.get(c.MONTH)+1);
	}

 

 

毫秒值,Date类型和Calendar类型的相互转换

  1. 毫秒值和Date类型相互转换
    1. 毫秒值转成Date对象:Date的构造方法,Date(long time);
    2. Date对象转换成毫秒值:Date的getTime()方法
  2. 毫秒和Calendar类型的相互转换
    1. 毫秒值转为Calendar类型:setTimeInmillis(long time)
    2. Calendar类型转为毫秒值:getTimeInMillis()
  3. Date类型和Calendar类型的相互转换
    1. Calendar类型转为Date对象:getTime()
    2. Date类型转为Calendar对象:setTime(Date date)

 

 

也就是说用SimpleDateFormat类来格式化Date类对象,SimpleDateFormat就是一个指定日期格式的构造器

 

要获取一个日期,先创建Date对象,然后要将Date对象转为SimpleDateFormat指定的格式

创建SimpleDateFormat对象,调用里面的format(Date date)方法即可,注意的是返回一个指定格式的字符串

当获取一个有日期格式的字符串时,转为Date类型,用SimpleDateFormat继承的parse(String str)方法

直接用parse方法转为有格式的Date对象,想要转为Calendar类就创建Calendar对象,用里面的setTime方法转为Calendar类

 

你可能感兴趣的:(Java基础)