A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 13333114253 于 2018-11-14 16:50 编辑

01-API
  1.Object类
        1)toString:
          *看一个类是否重写toString方法,直接打印这个类对应对象的名字即可
  2.日期类
        1)Date:
          *导包:java.util和java.sql包,当前使用util包
            Date   date = new Date();   当前日期
           Date类    东八区     new Date();当前时间    new Date(0L);毫秒转成日期对象

        2)DateFormat类(abstract类)和SimpleDateFormat类(子类)
          *格式化(也就是日期—>文本) String format(Date date) 把Date类转换成符合模式的字符串
           Date 转 String    yyyy年MM月dd日 HH时mm分ss秒
           Date date = new Date();
           DateFormat  format = new SimpleDateFormat ("yyyy年MM月dd日 HH时mm分ss秒");
           String str = format.format(date);       sout(str);


          *解析(也就是文本—>日期)   Date parse(String source) 把符合模式的字符串,解析为日期
            String转Date
            SimpleDateFormat  format = new SimpleDateFormat ("yyyy年MM月dd日");
            String str = "2018年12月11日";
            Date date = format.parse(str);    sout(date);



        *常用模式:"yyyy-MM-dd HH:mm:ss"
                     "yyyy年MM月dd日 HH时mm分ss秒"
       3)Calendar(日历类)
           *Calendar类无法直接创建对象使用,里面有个静态方法叫做getInstance();,返回Calendar的子类对象
             Calendar   c = Calendar.getInstance();
              int i = c.get(Calendar.MONTH);      设定值c.set(Calendar.YEAR,2020);
              在当前日子 c.add(Calendar.DAY_OF_MONTH, 2); // 加2天      cal.add(Calendar.YEAR, -3); // 减3年
               转化为Date      Date date = c.getTime();


        4)日期类总结:
           *Date <——> long  
              Date——>long  long getTime();
              long——>Date  new Date(long millis);
          *Date <——> String
              Date——>String SimpleDateFormat类 String format(Date d) 方法
              String——>Date SimpleDateFormat类 Date parse(String str)方法
          *Date <——> Calendar
              Date——>Calendar  void setTime(Date d)
              Calendar——>Date  Date getTime();


3.System类
        1)currentTimeMillis方法
           *一般用来测试程序的效率,开始之前获取一次,结束后获取一次
          System.currentTimeMillis()获取当前的系统时间

        2)arrayCopy方法
          System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)//转换数组

  4.String拼接
        1)StringBuilder-又被称为字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的字符串)
          *使用字符串相加,内存中会有多个字符串,效率低下
          *StringBuilder在内存中始终是一个数组Byte[16],如果超出了容量会自动扩容
          *链式调用(append方法):方法的返回值是一个对象,可以根据对象继续调用方法
            StringBuilder     StringBuilder sb2 = new StringBuilder("itcast");
             StringBuilder builder = new StringBuilder();                           builder.append(任意类型);

          *toString方法
           转化为String
           String  str = builder.toString();  


        2)StringBuffer-在多线程情况下StringBuffer更加安全
5.包装类:       基本数据类型的数据,使用起来非常方便,但是没有对应的方法来操作这些数据;
       所以我们可以使用一个类,把基本类型的数据包装起来,这个类叫包装类;
       在包装类中可以定义一些方法,用来操作基本类型的数据。
        1)装箱与拆箱
         *JDK1.5后自动拆装箱
         *自动装箱:例 Integer in = 1
         *自动拆箱:例 in += 2
            in是包装类,无法直接运算,可以自动转换为基本类型的数据再参与计算4
                自动拆箱后自动装箱
         *自动拆装箱可能会引起空指针异常,要注意!
        2)基本数据类型与字符串之间的转换
          *基本类型——>字符串:基本类型+""(常用)/String.valueOf()/包装类.toString();
          *字符串——>基本类型 包装类的静态方法parseXXX("字符串);
           int num = Integer.parseInt("100");


02-Collection
  学习目标:1.学会使用集合存储数据2.会遍历集合3.掌握每种集合的特性
  学习方式:1.学习顶层:学习顶层(接口/抽象类)共性的方法
                    2.使用低层:顶层不是接口就是抽象类,需要实现类来实现
  1.接口概述(从上到下)
    1)Collection接口
          *定义的是所有单列集合中共性的方法
          *所有单列集合都可以使用
          *不含带索引的方法
    2)List接口 extends Collection接口
      *有序的集合(存储元素和取出元素的顺序一致)
          *允许重复的元素
          *有索引,包含一些带索引的方法
        3)Set接口 extends Collection接口
          *不允许重复元素
          *没有索引,不包含带索引的方法
  2.Collection接口
      增删改查
     Collection<E> coll = new ArrayList<>();
       coll.add();//有序
       coll.remove("");//删除
       coll.contains();//判断是否存在
       coll.isEmpty();//集合中是否有元素

       int count = coll.size();//含有几个元素
       Object[]  obj = coll.toArray();//转化为数组元素
       coll.clear();//清除集合中的数据元素

补充:
Collections.shuffle( 集合名 );打乱集合

3.Iterator迭代器
    1)常用的两个方法:hasNext()/next();用来遍历集合
        2)迭代器实现类
          *获取实现类对象:Collection接口中的方法iterator(),返回值是迭代器的实现类对象
          *迭代器的使用步骤
             **获取迭代器的实现类对象
                 **用hasNext()方法判断是否到达集合末尾
                 **使用next()方法获取下一个元素
            Iterator<元素类型> iterator = 集合对象.iterator();
            while (iterator.hasNext()) {
                      元素类型 变量名 = iterator.next();
             }


          *迭代器的并发修改异常
            在使用迭代器的过程中修改集合长度,会引发跌大气的并发修改异常
                在使用迭代器遍历时不要修改集合长度
          *迭代器并发修改异常的解决方法(了解)
            Iterator接口有一个子接口ListIterator(只有List接口下面的集合可以使用)
                ListIterator接口中定义了add方法和remove方法,可以对集合添加/删除元素
                使用ListIterator接口中的add/remove方法对集合添加/删除元素,那么迭代器自己添加/删除的,就不会抛出异常
                获取ListIterator实现类对象需要List对象(Collection 向下转型为List)
   4.增强for循环
      数组名/集合名.for     回车
      for( 集合数组中的数据类型  变量名 :  集合名/数组名){
                 sout(变量名);
       }


02-泛型
  泛型是一种位未知的数据类型,可以看做一个“变量”,用来接收数据类型
1.泛型的定义
         *<E>:声明了一个泛型(看做是声明了一个“变量”)
         *E:使用E这种类型作为数据类型(泛型只可以使用引用类型)
  2.泛型的好处
        *避免了转换的麻烦
         *将运行时的类型转换异常,提前到了编译时期
3.泛型的定义
        1)含有泛型的类
          *修饰符 class 类名称<泛型>
        2)含有泛型的方法
          *修饰符 <泛型> 返回值类型 方法名(参数列表(使用泛型)){方法体;}
        3)含有泛型的接口
          *修饰符 interface 接口名<泛型>
          *实现类实现了泛型接口后的选择
                定义实现类时确定泛型的具体类型: public class A implements Generic<String>
                定义实现类时仍沿用泛型,直到创建对象 public class A<I> implements Generic<I>
        4)泛型通配符
          *<?>代表的是任意的数据类型,是已经定义了的泛型
          *通配符不能创建对象使用,只能作为方法的参数使用
          *通配符的下限限定:<? super 类名称>       父类及本身
          *通配符的上限限定:<? extends 类名称>    子类及本身

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马