java学习日记day20

复习:
String:
    创建方式:
        a.直接赋值
            String str = ""
        b.构造方法创建
            new String()

    编码问题:
        字符 -> 字节: 编码
            str.getBytes() -> 默认字符集
            str.getBytes("gbk") ->转换成gbk编码方式

        字节 -> 字符: 解码
            new String(byte[])

    正则表达式:
        字符
            []:一个字符的位置
            [0-9]:可以出现0-9之间所有的数字

            0-9a-zA-Z_: \w
            0-9: \d

        以^开头 以$结尾

        数量词:
            *    -> 0 或 n
            +    -> 1 或 n
            ?    -> 0 或 1
            {n} -> 刚好n个
            {n,}-> 至少n个
            {n,m} -> 最少n,最多m

        常用API:
            matches()
            replaceAll()
            split()

可变长字符串: StringBuilder/StringBuffer
    new StringBuilder("");

    append()
    insert()
    delete()
    reverse()
_______________________________________________________
包装类: - 对应的就是8大基本数据类型
    byte    - Byte
    short   - Short
    int     - Integer
    long    - Long
    float    - Float
    double    - Double
    char    - Character
    boolean - Boolean

1.创建方式:
    a.直接赋值创建
        Integer i = 10;
    b.构造方法创建
        new Integer(int i)
        new Integer(String str)

2.装箱和拆箱:
    自动拆箱: Integer -> int
        i1.valueOf();

    自动装箱: int -> Integer
        
3.常用API
    Integer/int  和 String之间的转换

        String -> Integer:
            a. Integer.valueOf()
            b. new Integer(str)

        String -> int:
            a. Integer.parseInt()

4.常量池:
    a.所有的包装类中只有Integer有常量池
    b.常量池有取值范围:
        -128 ~ 127
    c.只要超过取值范围,全都是在new对象

______________________________________________
数组: 数组的扩容/缩容 -> 最基本的数据结构

集合:可变长数组
    1.概念:集合相当于是一个容器,主要用来存储任意类型的数据

    2.分类:
        Collection(I)
            |- List(I)
            |- Set(I)
            |- Queue(I)

        Map(I)

_______________________________________________
Iterable - 接口
  1.API -> 只有一个方法 iterator() - 获取一个迭代器

  2.迭代器:
      a.作用:遍历/迭代集合(数组)所有元素
      b.三个方法:
          hashNext() - 询问有没有下一个元素
          next() - 移动到下一个元素,并返回该位置上的元素
          remove() - 删除集合元素

        注意:如果迭代删除每一个元素,就必须使用迭代器方式进行删除否则会出现ConcurrentModificationException - 并发修改异常

   3.简易版迭代器 - foreach
        a.作用: 获取集合/数组中所有的元素
        b. 语法: for( : ){}
            :前 ->  获取到的元素的临时变量
            :后 ->  要遍历的集合/数组
        c.缺点:    只能获取元素,不能做删除操作


Colletion集合:
    1.创建方式:
        Colletion col = new ArrayList();
    2.常用API:
        普通方法:
            boolean add(E e) 
            void clear() 
            boolean contains(Object o) 
            boolean isEmpty() 
            boolean remove(Object o)
            boolean remove(Object o) 

        和集合相关的API:
             boolean addAll(Collection<? extends E> c)
            boolean containsAll(Collection<?> c)
            boolean removeAll(Collection<?> c)
            boolean retainAll(Collection<?> c)


强类型 -> 指定类型  例如:String
弱类型 -> 没有指定类型(可以是所有类型)

泛型: 
  1.特点:
      a.所有是类型的地方都可以使用泛型来代替,泛型表示所有类型(Object)
      b.规定了泛型,就只是支持定义好的类型,只是在编译时有效,用来规范程序员写法
      c.运行时,还是支持Object类型

  2.定义泛型的步骤:
      a.在类/接口上定义加上<E>
          ps:  Collection<E> col = new ArrayList();

      b.在类/接口的方法中,具体类型就可以使用E来代替

  3.作用:
      泛型就是为了让代码的复用性更强,就可以不用实现重载操作


集合和数组的区别:
    长度区别:
        a.集合长度可变
        b.数组长度不可变

    内容区别:
        a.集合可以存储引用类型数据
        b.数组可以存储基本数据类型,引用数据类型

        c.一个集合中可以存储任意类型
        d.数组只能存储统一类型


JavaBean规范:
    1.成员变量私有化,提供一对get()/set()
    2.添加无参构造方法
    3.重写toString()
    4.重写equals()和hashCode()
    5.建议基本数据类型使用包装类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值