1.1 Date类
1.1.1 概念
Date是日期类,代表一个瞬间。
该瞬间以毫秒值作为计数单位,即距离1970年1月1日00:00:00所经过的毫秒值。
1.1.2 常见方法
构造方法:
public Date() //返回当前时间
public Date(long date) //返回指定毫秒值的日期对象
普通方法:
public long getTime() //获取当前时间对象的毫秒值
public void setTime(long time) //设置时间毫秒值
1.1.3 注意事项
Date是早期版本出现的,其API中有大量的过时方法,其许多方法由更为新的类Calendar类再次实现。
Date的默认格式为西方的月日年的,而非中国的年月日。
1.2 DateFormat类
1.2.1 概念
DateFormat是用于日期格式化类,即将一个Date对象转换为一个符合指定格式的字符串,也可以将一个符合指定格式的字符串转为一个Date对象。
DateFormat是抽象类,我们需要使用其子类SimpleDateFormat。
格式的具体规则见SimpleDateFormat帮助文档,这里做简单介绍,规则是一个字符串,会将以下字母替换成对应时间组成部分,剩余内容原样输出:
当出现y
时,会将y替换成年
当出现M
时,会将M替换成月
当出现d
时,会将d替换成日
当出现H
时,会将H替换成时
当出现m
时,会将m替换成分
当出现s
时,会将s替换成秒
1.2.2 常见方法
构造方法
public SimpleDateFormat() //使用默认格式创建格式化对象
public SimpleDateFormat(String pattern) //使用指定格式创建格式化对象
主要方法
public final String format(Date date) //将Date转为字符串
public Date parse(String source) //将字符串转为Date
1.3 Calendar类
1.3.1 概念
Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为字段值,方便获取。
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象,如下:
Calendar rightNow= Calendar.getInstance(); //返回当前时间
1.3.2 常见方法
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 final Date getTime() //获取该日历对象转成的日期对象
其他方法简单了解
1.3.3 注意
西方星期的开始为周日,中国为周一。
在Calendar类中,月份的表示是以0-11代表1-12。
日期是有大小关系的,时间靠后,时间越大。
1.4 System类
1.4.1 概念
在API中System类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作。
1.4.2 常用方法
public static void gc() //暗示回收垃圾
public static void exit(int status) //退出程序,0为正常状态,其他为异常状态
public static long currentTimeMillis() //获取当前时间毫秒值
public static Properties getProperties() //获取某个属性信息
1.4.3 注意事项
System不能手动创建实例对象,在JDK中,有许多这样的类,其构造方法被private修饰,阻止外界创建对象。
1.5 Math类
1.5.1 概念
数学工具类,类似这样的工具类,其所有方法均为静态方法,并且一般不会创建对象。
1.5.2 常用方法
public static int abs(int a) //绝对值
public static double ceil(double a) //向上取整
public static double floor(double a) //向下取整
public static int max/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) //四舍五入
1.6 基本类型包装类
1.6.1 概念
由于基本类型是内置的数据类型,与使用class定义的自定义类型略有不同,不能调用方法完成强大的功能。为了使基本数据类型代表的数据使用起来更方便,统一面向对象的思想,Java设计了基本类型包装类,即每一种基本类型都对应一种引用类型的包装数据类型。
除去整型与字符型,其他基本数据类型将首字母大写即为包装数据类型。
使用最多的基本类型为整型与字符型,最常见的动作为基本类型、包装类型、字符串相互转换
1.6.2 常用方法
通过包装类可以完成基本类型与字符串的转换,转换方法非常多,我们这里介绍最易用常用的方法。
l 字符串→基本类型
任何一种基本类型包装类都有一个parseXxx(String data)方法。如Integer有ParseInt方法。
l 基本类型→字符串
基本类型转为字符串非常简单,直接与空字符串相加即可。
1.6.3 自动装箱拆箱
基本数据类型包装类这些引用数据类型与其他引用数据类型有些不同,他们有更强大的功能,即自动装箱拆箱。即在需要的情况下,基本类型与包装类型可以通用。有些时候我们必须使用引用数据类型时,可以传入基本数据类型。
比如:
基本类型可以使用运算符直接进行计算,但是引用类型不可以。而基本类型包装类作为引用类型的一种也可以计算,原因在于,Java”偷偷地”自动地进行了数据类型的转换。
相对应的,引用数据类型变量的值必须是new出来的内存空间地址值,而我们可以将一个基本类型的值赋值给一个基本类型包装类的引用。原因同样在于Java又”偷偷地”自动地进行了数据类型的转换。
如:
Integer a = 10; //10这个基本类型值自动装箱成了引用类型
int b = new Integer(“10”); //引用数据类型自动拆箱成了基本类型
Integerc = b + a; //计算时,a自动拆箱为基本类型,结果自动装箱成引用类型。
1.7 简单正则表达式
1.7.1 概念
正则表达式是专门解决字符串规则匹配的工具。
正则表达式也是一个字符串,用来定义匹配规则。参照帮助文档,在Pattern类中有简单的规则定义,可以结合字符串类的方法使用。
String类中,使用正则表达式匹配完整字符串的方法为:
public boolean matches(String regex)
调用方法的字符串为被规则匹配的字符串
regex字符串为匹配规则
返回值为布尔型,符合规则返回true,不符合返回false
参照API文档后,我们简单了解了匹配规则,这里给出手机号与邮箱的匹配规则:\
Kang_Isjlfasjlfjaalkjkhdfljia@163.com
邮箱规则:String regex = ”^\\w+@\\w{2,7}\\.\\w{2,3}$”;
手机号规则:String regex = ”[1][3,4,5,7,8][0-9]{9}”;
如:
String data = “aaa@163.com”;
boolean result = data.matches(“\\w+@\\w{2,7}\\.\\w{2,3}”); //返回结果为true
String data2 = “itheima.cn”;
boolean result2 = data2.matches(“\\w+@\\w{2,7}\\.\\w{2,3}”); //返回结果为false
1.7.2 字符串中涉及正则的常用方法
public boolean matches(String regex) //完整字符串匹配规则
public String[] split(String regex) //将符合规则的字符串作为切割符切割
public String replaceAll(String regex,String replacement) //将符合规则的字符串替换为新字符串