java高级工具类

今日学习:
集合: 存放引用数据类型的容器。  主要学增删改查
Collection:  集合,是一个接口,继承了Iterable,里面有很多方法
List: 也是一个接口,继承了Collectio.
      特点: 有序,可以重复
Set:  也是一个接口,继承了Collectio
      特点: 无序,不重复
Map:
泛型: 指的就是容器中元素的数据类型。    <数据类型>
     好处: 就是省去了获取元素的时候,类型转换。
List接口:  里面有很多方法(增啥改查)
   ArrayList:   (add、get、size()、sort()最常用)
       特点: 内存空间连续
       add()
       remove(): 只能删除一个,如果有重复的数据,删除第一个
       get() :  通过索引获取
       set():
       size():  获取元素个数的
       sort()
       contains(Object o)
   ArrayList:  底层是Object数组。所有的增删改查都是基于数组进行的。
   size:       ArrayList里面标记元素个数的。
   添加的逻辑:
        如果底层的数组元素满了,就要扩容,扩容1.5倍。然后将元素添加到容器
   LinkedList: 链表
       链表实现了  List  和  Deque两个接口
       特点:内存空间不连续。
       底层是Node,   分为3部分   前一部分   数据   后一部分
  Deque: 队列,  先进先出
  Stack: 栈:   先进后出
  ArrayList和LinkedList区别:
     ArrayList: 查询快,增删慢
     LinkedList 查询慢,增删快
查看源代码的时候:
    c:  class  类
    m: method 方法
    f: field  变量
HashSet:  实现了Set接口。
     无序:   没有索引
     不重复:
     add():    添加了重复元素,只显示一个
     remove()
 hashSet和hashtable区别:
   hashSet线程不安全  效率高
   Hashtable 线程安全,效率低
 迭代器:iterator
      - hasNext
      - next
增强for循环   foreach循环
   实现了Iterable接口的都可以用
   for(泛型数据类型  变量 :  集合名称){
       操作变量
   }
   优点:  简单明了
   缺点:  不能操作索引

HashMap:  双列集合    
    put   如果键存在就是修改,不存在就是添加。
    get
    remove
    size
    keySet
 面试题:
    jdk8 以后HashMap的数据结构是:  数组+ 链表+ 红黑树
    当放入某个元素的时候,hashCode算出来要放入的位置,该位置存在元素,那么就以链表的方法放到下面,
    如果元素超过8个,就变成红黑树。
    如果红黑树的情况下,map删除元素,当红黑树中的元素少于6个的时候,红黑树变成链表。  泊松分布。
    HashMap初始化的时候,数组长度为16.
    负载因子 0.75.
    扩容2倍。

工具类  Collections
 - sort
 - reverse
 - shuffle
 - min
 - max
 - addAll


8.16
今日学习:
工具类:
    Object:  所有类的父类
         - hashcode()   获取对象hash值
         - equlas()   判断两个内存地址是否一样
         - toString()   将对象信息变为字符串返回
         - finalize()   finalize()方法在Object中进行了定义,用于在对象“消失”时,
                        由JVM进行调用用于对对象 进行垃圾回收,类似于C++中的析构函数;
                        用户自定义时,用于释放对象占用的资源(比如进行 I/0操作);
     equals和==有什么区别
     final、finally、finalize的区别
     (1)final为关键字;
     (2)finalize()为方法;
     (3)finally为为区块标志,用于try语句中;
      final: 被final修饰的类不可以被继承
             被final修饰的方法不可以被重写
             被final修饰的变量不可以被改变
     String:  final修饰的类
         构造方法,参数可以是 字节数组、字符数组、字符串
         - split()     切割字符串
         - strim()    去掉字母首尾空格
         - replace()   替换字符串
         - subString()   截取区间字符串从start开始到end结束(包头不包尾)
         - length()     取到该String的长度
         - isEmpty()   判断是否为空
         - getBytes()    转换成bytes型数组
         - valueOf()  转换类型
         String、StringBuffer、StringBuilder
     包装类:
         对基本数据类型的加强
         Integer  字符创和数字的转换
         Character  isDigit()
         isDigit() :如果字符串中只含有数字则返回True
         Character:
     Math
         ceil   返回最小值
         floor  返回最大值
         round   四舍五入成整数
    Date:
         构造方法 无参/毫秒值
         getTime()
         setTime()
         System.currentTimeMillis();    作用是返回当前的计算机时间
   SimpleDateFormat:    yyyy  MM  dd   HH mm ss
        parse(字符串)
        format(日期类型)
   Random
        nextInt(整数)    0-整数
   Calendar   抽象类,不能new   主要对日期进行加减运算
         add()
        日历和Date的转换

你可能感兴趣的:(java,开发语言)