黑马程序员技术交流社区

标题: 【石家庄校区】笔记总结 [打印本页]

作者: g207776411    时间: 2018-4-14 14:28
标题: 【石家庄校区】笔记总结
本帖最后由 小石姐姐 于 2018-4-20 09:36 编辑

笔记总结



Day05   常用API,日期的转换,包装类,正则表达式常用API获取字节码文件对象的方式
注意:同一个类下创建的对象的字节码值是一样的,例如一个类创建两个对象,分别是c1 c2 ,那么 c1.getClass()  =c2.getClass();
学习反射的时候,我们可以获得任意一个类的对象,并且调用它的方法和成员变量
object中的equalsSystem类常用的成员方法
    * 类字段,System.out.println(),out就是类字段,
    * err 错误输入流
    * in  输入流
    * out 输出流               

    * 格式 System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    src表示源数组
    dest表示目标数组
    srcPos表示起始要复制的元素的索引值
    destPos表示从目标文件的哪个索引值开始复制,
    length表示要复制的数组的长度

    *   毫秒值转----Date
        *           Date d=new Date(毫秒值);
        *           System.out.println(d);
        *               设置
        *               返回值是void.参数long
        *           构造方法也可以
        *           void setTime(long time);
        *           Date(long date)
        *      
    *           Date---毫秒值
        *               获取
        *               返回long.无参数
        *               long.setTime()  设置时间
        *               long getTime()
                        
## 举例 :
    *当有要求输出当前时间点
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss:SS")
    Date date =new Date();
    String s=sdf.format(date);
    System.out.println(s); //输出2018年04月07日18:37:54:721
    解析:
    Date d=new Day("")
    String s=abf.parse();
速记小技巧 :   00年00月00日 就是4个小姨2个大美眉和2个小弟弟
包装类的概述和基本使用
由于基本数据类型只能做一些简单的操作和运算,所以Java为我们包装了基本数据类型,为每种基本数据类型提供了包装类.
包装类就是封装了基本数据类性的类,为我们提供了更多复杂的方法和一些变量
我们有四类八种基本数据类型他们分别都包装了基本类型
byte        Byte
short       Short
char        Character
int         Integer
long        Long
float       Float
double      Double
boolean     Bollean

Integer
        相互转换
        int a = new Integer("60").intValue();
        String---int
        int---String
Integer的转换方法
        Integer(int  value)
            String s=new Integer().Integer(60);
            
        Integer(String s)
        
        int intValue()
        
        static int parseInt(String s)
        
        static String toString(int i)
        
Integer的构造方法
//Integer(String s)
    Integer i=new Integer("10");
    System.out.println(i);

     将字符串转换为int类型
    Integer i=new Integer("60");
    int a = i.intValue();
    System.out.println(a + 30);
   * 因为我们需要在不创建Integer对象的情况下来转换字符串,所以我们必须选择一个静态方法      
    Integer 相互转换
        //      方式1; int类型接收 =new Integer("字符串").intValue();
        //      方式2;static int parseInt(String s);
        //      String---int
        //      
        //      int---String
        //      方式1:直接加空字符串"" + int
        //      方式2: 用toString方法
        //      方式3: static void toString(int i);
        // Integer的构造方法

        // Integer(Strings)
        // Integer i=new Integer("10");
        // System.out.println(i);

        // 将字符串转换为int类型
        // int a = new Integer("60").intValue();
        // System.out.println(a + 30);
        
        //static int parseInt(String s);包装类自动装箱和拆箱  JDK1.5的特性
自动装箱就是基本数据类型转引用类型
自动拆箱就相当于将引用类型转换为基本数据类型
Interger i=10;
Interger i2=20;
Interger i3=i+i2;
//Integer i3 = new Integer(i.intValue()+i2.intValue());正则表达式验证方法正则表达式验证方法
​        *  Pattern类,在API中查询Pattern类查询正则表达式
比较格式: boolean matches (String  regex):判断是否符合正则表达式的规范
日期中常用的转换方法
​                1)Date对象转转毫秒值

        Date d=new Date();

        long 毫秒变量接收 =  d.getTime();
​                2)毫秒值转Date对象  setTime没有返回值,所以不需要Date对象接收

            Date d=new Date();

            d.setTime(d.getTime());
​                3)String日期字符串转Date对象  (叫做解析)

调用SimpleDateFormat方法parse(); 返回一个Date对象,

        定义SimpleDateFormat 的对象

        SimpleDateFormat  sdf=new SimpleDateFormat("日期规范");

        Date d=sdf.prase("日期字符串对象或者日期字符串的String常量")
​                4)Date对象转String

        Date d =new Date();

        String  s=adf.format(d);

        System.out.println(s) ;//我们此时输出的就是符合我们定义的规范的日期,输出日期字符串
巧记:毫转时间用set,时间换毫秒用get(并且long接收),        
​                5)Calendar方法  用于获取年  月  日  小时 分钟  秒
​                        注意:  有意Calendar是一个抽象类 ,要想调用Calendar 的对象,我们可以直接调用它的静态方法Calendar cal= Calendar.getInstance();  用Calendar对象来接收
​        注意:
​                Calendar cal= Calendar.getInstance();
​                Date对象转Calendar,这里主要使用来获取改变的Date日期,然后用Calendar来获取并且输出
​                        cal.setTime(Date对象);    例如: cal.setTime(new Date());
​                获取
​                        int year=cal .get(Calendar.YEAR)  ;//实际上就是调用Calendar中的成员变量
​                修改
​                             cal.set(Calendar.YEAR, 要修改成的年份);
​                添加
​                        cal.add(Calendar.MONTH,要修改的月份,如果是负数,那就是日期待退多少);
Day06 List集合,迭代器,泛型,Collection常用功能ArryList 集合的体系结构
​                体系结构:                1)因为不同功能的数据结构(数据的组织,存储方式),所以Java 为我们提供了不同的集合
​                  2)但是不同的集合它们的功能都是相似的,我们可以不断的向上抽取,提取共性
Collenction常用功能
      *  报错的原因是,迭代实际上是集合的副本,集合中没有的副本,我们用迭代就执行不了,迭代器依赖于集合
         *  报错提示   **ConcurrentModificationException**
​        
   重点注意:
           迭代器依赖于集合,相当于集合的副本        (我们通过迭代器修改集合中的元素,因为迭代器和集合是同步的)
并发修改异常
迭代器的添加方法:
                   我们可以调用Iterator的儿子的方法来实现添加元素 List子类           

   
List l = new ArrayList();           //创建集合对象
ListIterator li=l.ListIterator();  //迭代
while(li.hasNext()){
    li.add("C++");  //用迭代器添加,因为迭代器是和集合是同步的
    System.out.println(l);
}泛型
泛型:是一种广泛的类型,把明确数据类型的工作提前到了编译时期,就是在还没执行程序之前就会提醒你,捷键了数组的特点(类型不同,不允许存储)
​                *  泛类就是和集合格式一样                *  ArrayList<泛类,就是要存储的数据类型> arr=new ArrayList<String>();                *  类的格式为         类名<E>类型的类,都可以指定泛类        
​                泛型只存在于编译之前,编译以后,系统功能会擦出泛型

    // 创建集合对象
    Collection<Student> c = new ArrayList<Student>();
    // 创建元素对象
    Student s1 = new Student("张三",19);
    Student s2 = new Student("李四",18);
    // 添加元素对象
    c.add(s1);
    c.add(s2);
   // 遍历集合对象
   //用迭代器遍历数组
   Iterator<Student> it=c.iterator();
   while(it.hasNext()){
    Student stu=it.next();
    System.out.println(stu);
   }foreachforeach
​        这是一个增强for循环        
常见的数据结构
  | 0x0011 |  1 | 0x0022 |
  | 0x0022 |  2 | 0x0033 |
  | 0x0033 |  3 | 0x0044 |
  | 0x0044 |  4 | 0x0055 |
  | 0x0055 |  5 |        |
如何获取结点3?如何获取结点3?        只能遍历链表,然后一个个查看,        要在结点2后面添加一个新的结点8?                把结点2的下一个结点地址值修改为结点8的地址值,把新节点8的下一个地址值改为3结点的地址值        缺点:查询慢增删快        
栈和队列的特点
栈是先进后出,
队列是先进先出列表List
List 的元素排列顺序是依次排列和Array List一样        常用方法:                先创建对象                                List list=new ArrayList();                        添加:  void add (int index,E element)                                                list.add();                        修改: E remove (int index):将指定索引位置的元素替换,并且返回原来的元素                                list.set(0,"android");                        获取:E get (int index)根据索引返回元素                                list.get();                                注意: 在获取的时候也不能发生越界,即获取它不存在的索引的元素                                





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2