Object类,System类,包装类,日期类

Object类

1,Object类是Java语言的老祖宗,所有类的祖宗类,所有类在创建对象的时候,最终都会找到Object。
   当一个类被初始化的时候,其父类也会被初始化,即一个类被构造时,其父类也要被构造。

class Supur{

	public Supur() {
		System.out.println("我是爸爸");
	}
	
}

class Sun extends Supur{

	public Sun() {
		System.out.println("儿子");
	}

}

public class Test01{
	
	public static void main(String[] args) {
		Sun sun = new Sun();
		System.out.println("hello");
	}
	
}

以下为结果:
		我是爸爸
		儿子
		hello

2,Object中的主要方法

1,public String toString()
源码:return getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
首先,getClass().getName() 得到的是正在运行的类的完整类名, Integer.toHexString(hashCode())获得的是该对象的哈希码。
如上述例子的sun对象调用toString方法,得到的结果为cn.sxflow.test01.Sun@35f983a6
该方法一般需要对其进行重写
2,public boolean equals(Object obj)
判断两个对象是否相等,一般需要对其进行重写
3,finalize()
Java的垃圾回收机制中,他是核心。当一个对象使用过后,不会再被调用时,会被系统自动调用该方法进行回收。
4,getClass()
返回正在运行时的类
剩余的方法会在多线程,反射板块涉及。

System类

1,System类包含几个有用的类字段和方法。 它不能被实例化。
   System类提供的System包括标准输入,标准输出和错误输出流;
   访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。
2,其所拥有的方法基本均为静态方法,如:

1,public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
   功能就是从src数组的srcPos索引处复制长度为length的元素至数组dest的destPos索引处。
2,public static void gc();
   通知系统执行垃圾回收器,finalize()会立即执行。
3,public static void exit(int status)
   此方法调用exit类方法Runtime 。 此方法从不正常返回。 用于结束程序。
4,public static long currentTimeMillis()
   在1970年1月1日UTC之间的当前时间和午夜之间的差异,以毫秒为单位。
5,err,in,out,标准错误,输入,输出流。

包装类

1,为什么要使用包装类?
   在日常使用中,我们输入的数据一般都是以字符串类型进行存储的,但程序开发时,我们需要将字符串类型转换为对应的基本数据类型,故此引入了包装类,用来提供更多的操作来操作基本数值。
2,8种基本数据类型包装类。

着重介绍两个,整形int,包装类,Integer,字符型char,包装类,Character;
其他数据类型的包装类均为其数据类型首字母大写。
3,包装类的两个构造方法(以Integer为例)
Integer(int value)
Integer(String s)
4,包装类的常用方法(以Integer为例)
toString(),intValue(),parseInt(String s),hashCode(),equals()等
5,自动装箱(基本数据类型转换为对象),自动拆箱(对象转换为基本数据类型)

日期类

1,Date类

Date()
 构造方法:分配一个 Date对象,并初始化它,以便它代表它被分配的时间,测量到最近的毫秒。
Date date = new Date(); System.out.println(date);
 输出为Mon Nov 12 21:03:43 CST 2018
Date(long date)
 构造方法:分配一个 Date对象,并将其初始化为表示自称为“时代”的标准基准时间以后的指定毫秒数,
 即1970年1月1日00:00:00 GMT。
Date date = new Date(1000*60*60*24); System.out.println(date);
 输出为Fri Jan 02 08:00:00 CST 1970
getTime()
 返回自1970年1月1日以来,由 Date对象表示的00:00:00 GMT的毫秒数 。
Date date = new Date(1000*60*60*24); System.out.println(date.getTime());
 输出结果为:86400000
public void setTime(long time)
 设置此 Date对象以表示1970年1月1日00:00:00 GMT后的 time毫秒的时间点。
Date date = new Date(); date.setTime(1000*60*60*24); System.out.println(date);
 输出结果为:Fri Jan 02 08:00:00 CST 1970
 相当于Date(10006060*24)
toLocaleString()
 以当地时间格式显示时间,但是该方法已过时,我觉得很好用。
Date date = new Date();date.setTime(1000*60*60*24);
System.out.println(date.toLocaleString());
 输出结果为:1970-1-2 8:00:00

2,DateFormat类与SimpleDateFormat类

date感觉在使用上不是让我们很爽,而且很多方法都已过时,故引入了DateFormat类,
DateFormat是日期/时间格式化子类的抽象类,它以语言无关的方式格式化和分析日期或时间。 日期/时间格式化子类(如SimpleDateFormat )允许格式化(即日期文本),解析(文本日期)和归一化。 该日期表示为一个Date对象,或自1970年1月1日00:00:00 GMT以来的毫秒。
介绍几个常用的方法,
SimpleDateFormat()
构造一个 SimpleDateFormat使用默认模式和日期格式符号为默认的 FORMAT区域设置。
SimpleDateFormat(String pattern)
使用给定模式 SimpleDateFormat并使用默认的 FORMAT语言环境的默认日期格式符号。
public final StringBuffer format(Object obj,StringBuffer toAppendTo, FieldPosition fieldPosition)
覆盖格式。 将时间对象格式化成时间字符串。 时间对象的示例是以毫秒为单位的时间值和Date对象。
public abstract Date parse(String source,ParsePosition pos)
根据给定的解析位置解析日期/时间字符串。 例如, "07/10/96 4:5 PM, PDT"的时间文本将被解析为Date ,相当于Date(837039900000L) 。
举个例子看比较舒服一点。

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

public class Test01{
	
	public static void main(String[] args) throws ParseException {
		test01();
		test02();
		test03();
	}

	private static void test03() throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		Date date = new Date();
		String s = sdf.format(date);
		System.out.println(s);
		Date parse = sdf.parse("2018年11月12日 21:41:50");
		System.out.println(parse);
		//2018年11月12日 21:42:01
		//Mon Nov 12 21:41:50 CST 2018
	}

	private static void test02() throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
		Date date = new Date();
		String s = sdf.format(date);
		System.out.println(s);
		Date parse = sdf.parse("2018年11月12日");
		System.out.println(parse);
		//2018年11月12日
		//Mon Nov 12 00:00:00 CST 2018
	}

	private static void test01() throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat();
		Date date = new Date();
		String s = sdf.format(date);
		System.out.println(s);
		Date date1 = new Date();
		Date parse = sdf.parse("19-11-12 下午9:34");
		System.out.println(parse);
		//18-11-12 下午9:36
		//Tue Nov 12 21:34:00 CST 2019
	}
	
}

3,Calendar类
Calendar是一个日历类,含有很多关于时间的常量,很方便获取现在时间在每一年的具体位置,如2018的第几年。

举个例子

		Calendar calendar = Calendar.getInstance();
		int i = calendar.get(calendar.YEAR);
		int j = calendar.get(calendar.MONTH)+1;
		int j2 = calendar.get(calendar.DAY_OF_MONTH);
		System.out.println(i + "-" + j + "-" + j2);
		//2018-11-12

Date()
分配一个 Date对象,并初始化它,以便它代表它被分配的时间,测量到最近的毫秒。

猜你喜欢

转载自blog.csdn.net/qq_42036640/article/details/83999531
今日推荐