Calendar:    
 * 
 *      类是一个抽象类(无法实例化),它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法
 *  
 *      ,并为操作日历字段提供一些成员方法!
 *  
 *  成员方法:
 *      public static Calendar getInstance() :创建当前日历类对象(和时区以及语音环境有关系)!
 *     
 *         public int get(int field):获取 当前时区的日历中的具体的字段值
常用的成员方法:
 *     public abstract void add(int field, int amount):
 *                 给日历类中的某个字段设置偏移量
 * 
 * public final void set(int year, int month, int date):设置当前日历类中年月日时间
 haracter类:char类型的 包装类类型
 * 构造方法:
 * public Character(char value)

Character类的判断功能:
 *     public static boolean isDigit(char ch):判断该字符是否为数字
 *  public static boolean isUpperCase(char ch):判断该字符是否为大写字母字符
 *  public static boolean isLowerCase(char ch):判断该字符是否为小写字母字符
 *  
 *  toUpperCase(char ch) :转换成大写
 *  toLowerCase(char ch):转换成小写

public static boolean isDigit(char ch):判断该字符是否为数字
 *  public static boolean isUpperCase(char ch):判断该字符是否为大写字母字符
 *  public static boolean isLowerCase(char ch):判断该字符是否为小写字母字符

Date:日期类
 *         表示特定的瞬间,精确到毫秒
 * 允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串
 * 
 * 构造方法:
 *     public Date():创建一个Date对象,精确毫秒值(使用它,根据系统时间分配!)
 * public Date(long date):传入指定的实际毫秒值  (了解)

成员方法:
 * Date----> long 时间毫米值
 * public long getTime(): 如果知道Date对象,获取当前long时间毫秒值
 * public void setTime(long time) :设置时间毫秒值

Date日期格式----->String转换            (日期文本格式)
 *         格式化操作
 * public final String format(Date date)
 * 
 *         解析操作
 * String(日期文本格式) ----- >Date 日期格式 
 * 
 * public Date parse(String source) throws ParseException (该方法调用的时候会抛出异常)
 * 
 * 中间必须使用
 * DateFormat 是日期/时间格式化子类的抽象类 ,无法实例化 
 * 所以必须使用它的子类来实例化
 * SimpleDateFormat允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)
 * 
 * 构造方法:
 * public SimpleDateFormat(String pattern):
 * 参数pattern:描述日期和时间格式的模式 
 * 
 *     y表示年       yyyy表示一个具体的年份                     举例: 2020  yyyy
 *     m表示月       MM 表示年中的月份                        举例: 01
 *     d  月份中的天    dd表示                                举例: 15/07 
 * 
                 *  HH:小时
                 *  mm:分钟
                 *  ss:秒数
                 *  
                 *  
    Math:针对数学运算(三角函数,指数...)
 * 
 * 成员方法:静态的功能
 *             public static double abs(double a) :绝对值
 *             public static double ceil(double a) :向上取整
 *             public static double floor(double a):向下取整
 *             public static double max(int a, int b):求最大值
 *             public static int min(int a,int b):求最小值
 *             public static double pow(double a,double b):a的b次幂
 *             
 *             public static double random():随机数 [0.0,1.0)
 *             public static long round(double a):四舍五入
 *             public static double sqrt(double a):开平方根

Random类:
 *         产生一个随机数的类
 * 
 * 构造方法:
 *     public Random():创建一个随机数生成器 ,该方式每次调用nextInt()/nextInt(int n)
 * 产生的随机数不一样
 *     public Random(long seed):通过一个时间毫秒数创建一个随机数生成器,每次随机数相同的
 *         
 * 
 *成员方法:
 *        public int nextInt() :每次产生的随机数在int类型的范围内取值
 *        public int nextInt(int n) :产生的随机数的范围在[0,n)之间
 *
 *获取随机数:
 *        两种方式:
 *        Math里面的random方法() ---->double [0.0,1.0)
 *        Random类:随机数生成器  
 *             无参构造方法+nextInt(int n) :结合使用  [0,1)

System类:包含一些有用的类字段和方法。它不能被实例化。
 * 
 * 
 *字段(成员变量)
 static PrintStream err 
          “标准”错误输出流。 
static InputStream in 
          “标准”输入流。 
          
          Scanner(InputStream in)  -----> Scanner(System.in)
static PrintStream out 
          “标准”输出流。
          
           
        printStream:字节打印流 (java.io包下)   和IO流相关(SE高级部分)
        
      成员方法:
      public static void gc()运行垃圾回收器。 
      
      之前Object类的
          protected void finalize() :和垃圾回收器有关系
                 throws Throwable :当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
                         子类需要重写finalize()方法
public static void exit(int status) :终止当前正在运行的jvm,
 *                                        一般情况参数是0
 * public static long currentTimeMillis()返回以毫秒为单位的当前时间 (毫秒值)
 * public static void arraycopy(Object src,int srcPos,Object dest,
 * int destPos,int length)
 * 
 * 从指定源数组中src中的某个位置 srcPos开始,到目标数组dest中的指定位置destPos,指定长度复制
 集合:
 *        是一个容器 
 *     StringBuffer/数组:都是容器
 *     
 *    StringBuffer:字符串缓冲区,只能存储字符串内容 
 *    数组:长度是固定的,不符合长度可变的要求
 * 面试题:
 *  集合和数组的区别?
 *          1)长度的区别:
 *            数组长度是固定的
 *           集合长度是可变的
 *          2)存储元素的区别
 *              数组:只能存储同一种类型的元素 
 *              集合:可以存储不同的类型(都只能引用类型)
 *              
 *          3)存储类型的区别:
 *                  数组:既可以存储基本类型,也可以引用类型
 *                  集合:只能引用类型
 * Collection:
 *         顶层次的根接口
 *         List子接口  :允许元素重复的
 *                 三个子实现类:ArrayList,LinkedList,Vector
 *      Set子接口
 *              两个子实现类:HashSet,TreeSet(牵扯到排序:选择器排序/自然排序)
 *  Collection: 接口  ,不能实例化           
 *          JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现
 *  
 *  
 *  基本功能
 *      boolean add(E e):给集合添加元素
        boolean remove(Object o):删除指定的元素
        void clear():暴力删除(删除所有)
        boolean contains(Object o) 判断是否包含指定的元素
        boolean isEmpty():判断集合是否为空
        int size():获取集合中的元素

Collection的遍历操作:遍历集合
 *     Object[] toArray() :将集合转化成对象数组(传统方式遍历)

集合专门有自己的遍历方式:
 * 迭代器 Iterator iterator()
 *     
 *         boolean hasNext():判断是否有下一个可以遍历的元素
 *         Object next():获取迭代器的下一个元素