字符串,包装类,异常,常用类,正则表达式,集合的基本知识点

1 ,JVM内存结构
   JVM所管理的内存
   主要分为三大区域
    1)方法区:用来存储程序运行时所需要的类信息
                 入String.class,静态方法,常量等
    2)堆:所有引用类型的对象(实例)存储的位置
    3)栈:用来存储方法的参数以及方法内的局部变量
            栈帧: 在栈中JVM会给每一个方法单独分配空间,这个空间用来存储此                 方法内的所有局部变量,当此方法结束后,栈帧消失(内存释放)
   垃圾回收机制:
     不定时的检查堆里的对象,是否被变量所引用,如果发现这个对象没有被引用,     就会处理垃圾
      处理的方法就是System。gc()
2 ,API(程序应用接口)
     就是封装了已经写好的类型。
    包含了常用的类型,如String,Date,Exception,IO等等


3, 字符串
    String 
      特点:不可改变的,final修饰不能被继承,且重写了Object的equals方法和             toString方法
    StringBuffer:可改变的,比StringBuilder线程安全
    StringBuilder:比StringBuffer运行快---常用()
    StringBuffer和StringBuilder没有重写equals方法,但重写了toString方法


   String 中的  String [] spilt(String regex)
                如果符合正则表达式的分隔符在普通字符串
                如果在开头加一个分隔符,则多一个空的字符串
                如果在末尾加一个分隔符,则等于没加


4, 包装类
    Object这个类是引用类型的最顶端(所有类的父类)
    boolean equals(Object obj)return this==obj;比较的是地址信息
    toString();返回了对象的一串字符 类全名@Hash值(例如:com.Person@4E5A)
     
    所以在定义类时,都会重写equeals和toString方法
    equals用来比较两个对象的内容
     1,先判断传进来的参数是不是this
     2,判断参数是不是null
     3,判断传进的参数是不是同一类型
    toString用来描述对象的内容


    int --Integer
    byte--Byte
    short--Short
    long -- Long
    float--Float
    double--Double
    char -- Character
    boolean--Boolean


    基本类型怎么变成包装类
     jdk1.5之前使用构造器进行装箱
    jdk1.5之后  支持自动装箱
     Integer a=5;
     int b=a;
     Integer c=new Integer(8);


      包装类的整数常量池
     在自动装箱时,如果值在-128到z127范围内时
      Integer a=5;
      此时,先去常量池中查找是否有与5值相等的对象,如果有就不创建对象,直接     引用常量池中的,如果没有,就创建对象存入常量池


5, 异常
    Throwable
            --Error(系统级别的,程序员无法修改)
            --Exception(编程过程中可以避免出现的
     按照编译器是否检查分类
        检查性异常:
        非检查性异常:(在编译期间不去检查)
     按照JVM运行时分类
         运行时异常:也叫非检查性异常
         非运行时异常(编译异常)==检查性异常
      try{
         可能会出现异常的代码块
          将try抓到的异常信息封装成异常对象
           
      }catch(Exception e){
          将地址信息给e
     }finally{
         通常进行一些流的关闭操作
    } 
     多个catch的写法:
     从上往下处理的异常可以是
      同级别的异常类型,或者是子父关系
     
      子类重写父类的方法时, 
     如果父类的方法有声明(throws)异常,可以不声明,也可以声明同一类型或者     是异常的子类型
      
6, Date类型


   在java语言中,也设计出了相应的时间类型用来描述时间及其日期等信息,用的是   UTC时间标准 。GMT也是一个时间标准
   
    Date类型简介
     java.util.Date封装了时间信息。
    获取的时间:是距离某一时间的毫秒数,表示另外一个时间点
     距离的某一时间点叫纪元。就是1970年1月1日0时0分0秒


   常用的API
    构造器:
      --Date():获取的是系统当前时间点
      --Date(long time):将time设置成距离纪元的毫秒数


     方法:
      --long getTime():获取时间对象距离时间纪元的毫秒数
      --void setTime(long time):设置距离纪元的时间毫秒数
 
     Date类中的绝大多数方法都被Calendar类所代替


7, SimpleDateFormat
   类型简介:java.text.SimpleDateFormat用来格式化时间


    可以将时间格式化成字符串
    也可以将字符串解析成时间对象
  
   日期模式匹配字符:(看API中都有)


    Date parse(String str) try catch
    时间字符串必须与格式字符串pattern对应上


8, Calendar
   类型简介
    java.util.Calendar封装了日期和时间信息,可以对时间分量进行设置。
   Calendar是抽象类,其子类是各个国家自己国家的日历类型,不过,大多数国家通   常用格里高利历法


   getInsrance()
           --static Calendar getInstance()
           作用:静态方法,获取子类对象


   日期与时间分量
      --static int YEAR
      --static int MONTH
      --static int DATE
      --static int WEEK_OF_YEAR
      --static int WEEK_OF_MONTH  值为0-11
      --static int DAY_OF_WEEK   值为0-7但是从周日开始
      --static int HOUR
      --static int MINUTE
      --static int SENCOND
   
    getActualMaximum
    可以获取某个时间分量的最大值
 
   add方法
    在时间分量上增加,若增加的值超过本月的天数,就追加到下一个月


   setTime():在设置时间的时候,也可以追加到下一个,当为负数时到上一个分量




9, 正则表达式
   
   *正则表达式是用来校验某些字符串是否符合规则。
   是一串特殊的字符串。特殊在其字符都是通配符有匹配功效


   * []:检查是否有括号内中的某个字符
      [abc] a,b,c中的任意一个字符
      [^abc]表示除了a,b,c以外的字符替换^
      [a-z]所有小写字母
      [A-Z]所有的大写字母
     


   * 转义字符:\
     \w 等于[a-z,A-Z,0-9]
     \W 与 \w相反
  
     \d 任意数字
     \D任意非数字


       *符号 是出现0次或者多次
       +     1次或者多次
       ?    0次或者1次
       {n}恰好n次
        {n,m}至少是n次,不多于m次
     如果想使用“\d”
     需要在“\”前再次添加转义字符,将次“\”转义成普通的“\”
     


二 , 集合
   数组和集合
    不同点:
      *数组可以存基本数据类型,但集合不能
      *当不知道数据具体长度时,不适合用数组




   List接口;--父接口Collection
   List接口的特点
     *有序,可重复(同一个元素可存多次)
     *元素的索引:从0开始到size()-1


   List的实现类
     ArrayList,LinkedList,Vector,通过向上转型,父类引用指向子类对象


    方法:
      *add(E e) boolean 从尾部追加元素E是泛型的元素
      *add(int index,E e) 在指定索引出添加元素
      *addAll(int index,Collection c) boolean 从索引index上插入集合c的元素
      *get(int index)E 通过指定索引,获取相应元素
      *set(int index,E elements) E 使用元素element替换掉索引为index的上的元素,返回值为替换出来的元素
      *int indexOf(Object obj) 返回元素obj在集合找那个第一次出现的索引,如果集合中没有返回-1
      *int lastIndexOf(Object obj) 返回元素obj在集合中最后一次出现的索引,如果没有同样返回-1
      *remove(int index) E 移除索引index上的元素,返回值就是此元素

      *subList(int fromIndex,int toIndex) List 截取子集,从fromIndex开始,到toIndex结束,包前不包后,通过子集引用修改元素,那么会影响父集。


  集合未完,待续

猜你喜欢

转载自blog.csdn.net/qq_40881157/article/details/80607462