Java中有很多常用类,这些是我们必须要掌握的,下面对这些常用类及其常用方法进行总结并保持更新。

包装类

我们都知道,Java中有一个系统类型由两部分组成,包含基本类型(primitive),例如int、float、double等,和引用类型(reference type),如String和List。而基本数据类型是不具备对象特征的,每个基本类型都有一个对应的引用类型,称作是装箱基本类型(boxed primitive)包装类。而基本类与包装类的关系如下表:

JAVA中基本类型的优先级_java

包装类主要提供了两大类方法:
1. 将本类型和其他基本类型进行转换的方法
2. 将字符串和本类型及包装类互相转换的方法

以Integer为例(其他包装类类似)说明这两种转换:

JAVA中基本类型的优先级_JAVA中基本类型的优先级_02

而自从JDK1.5以后Java中引入了自动拆箱装箱的机制,包装类和基本类型之间的转换就更加轻松便利了。

装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱

拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱

JAVA中基本类型的优先级_string_03

JAVA中基本类型的优先级_JAVA中基本类型的优先级_04

实际上基本类型和装箱基本类型之间还有很大的区别的,这些区别容易导致一些麻烦。这些会在以后的博客中详细解释。

Date相关类

Date类,位于java.util包中,用于表示特定的瞬间,可以精确到毫秒。在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换使用 DateFormat 类来格式化和解析日期字符串Date 中的相应方法已废弃

使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,但是显示格式不太友好。所以我们还需要使用java.text包中的SimpleDateFormat类来对日期进行格式化。如可以将日期转换为指定格式的文本,也可将文本转换为日期

1.使用 format() 方法将日期转换为指定格式的文本

Date date = new Date();
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年mm月dd日 HH小时mm分钟ss秒");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/mm/dd HH/mm/ss");
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-mm-dd HH-mm-ss");
        String toDay1 = sdf1.format(date);
        String toDay2 = sdf2.format(date);
        String toDay3 = sdf3.format(date);
        System.out.println(toDay1);
        System.out.println(toDay2);
        System.out.println(toDay3);

运行结果

JAVA中基本类型的优先级_java_05

关于日期格式的模式字母定义如下:

JAVA中基本类型的优先级_string_06

JAVA中基本类型的优先级_JAVA中基本类型的优先级_07

2.使用 parse() 方法将文本转换为日期。下面通过一个小例子说明。该例子实现了求2015年5月27日是星期几的功能。

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

public class DataDemo {

    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        try {
            Date date = sdf.parse("2015年5月27日");
            SimpleDateFormat sdf1 = new SimpleDateFormat("E");
            SimpleDateFormat sdf2 = new SimpleDateFormat("w");
            SimpleDateFormat sdf3 = new SimpleDateFormat("W");
            String week1 = sdf1.format(date);
            String week2 = sdf2.format(date);
            String week3 = sdf3.format(date);
            System.out.println("2015年5月27日是:"+week1);
            System.out.println("2015年5月27日是2015年的第"+week2+"个星期");
            System.out.println("2015年5月27日是5月的第"+week3+"个星期");
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

运行结果:

JAVA中基本类型的优先级_方法_08

3.Calendar 类的应用

由于JDK1.1以后,Date类的一些函数已经不再推荐使用,所以我们应该使用 Calendar类实现日期和时间字段之间转换。Java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();

JAVA中基本类型的优先级_基础_09

JAVA中基本类型的优先级_JAVA中基本类型的优先级_10

Math类

Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: Math.round();

常用方法如下:

JAVA中基本类型的优先级_基础_11