• 笔记


    udp:
     不需要建立链接既可以作为发送方也可以作为接收方
     数据包大小有限制(64k)  效率高  不安全

     使用的socket对象:
      DatagramSocket: 数据报包套接字  既可以作为接收方  发送方的socket对象
      指定一下端口  不指定端口 默认分配端口

      send(DatagramPacket);
      receive(DatagramPacket);


     DatagramPacket:发送和接收的数据信息
      通过不同的构造器 创建不同的包对象
       发送包 :执行InetAddress ,端口
       接收包 :指定接收的字节数组 以及长度  DatagramPacket  数据  发送方的ip  端口。。。

    URL:
     统一资源定位符
     openConnection();---》 URLConnection:
     URLConnection:
      connect(); 建立链接
      getInputStream();--》通过输入流 读取当前链接中的数据信息
      getOutputStream();


    api:application programing interface 别人写好实现[网络资源]。对外提供接口(url地址)。
      通过学习接口的规则(使用已知的url 发送一个请求到对应的服务下)。api 会经过自己的服务器,返回给调用者一个结果。


    集合:
     1、一张图:
      Collection(无序 可重复)                            Map(一对)
      /                                             /      
       Set               List(有序,可重复)             HashMap     TreeMap
     /         /        
    HashSet   TreeSet    ArrayList   LinkedList

     2、三个知识点:
      a、Iterator:迭代器  是一个接口   next();hasNext();remove();
                  迭代过程中小心并发修改异常
                  迭代集合元素时,不同的实现类中,其实内部维护了一个对应的实现类。
                  通过iterator方法 返回当前创建的实现类对象 对当前集合进行迭代
      b、泛型:
       泛型类
       泛型方法
       泛型接口

       宽泛的类型  这个类型的确定依赖于:
         1、创建某个类的对象  直接指定泛型的类型
         2、调用具体方法时 确定其泛型类型
       泛型的定义:
        <T> <E>
      c、比较器:
        内部比较器:
         当前比较的类 实现Comparable 接口  重写compareTo方法
           定义好之后 如果需求更改 必须要重写
        外部比较器:
         创建集合对象时 指定比较器
          比较器需要实现java.util.Comparetor接口 重写compare(t1,t2)方法。
          根据用户需求重复定义 满足要求的比较器
          可以通过匿名内部类实现

       3、六个接口:
         a、Collection:
           存储元素的特点:无序 可重复
           常见方法:add(Object) remove(Object); iterator();size();clear();
               addAll(Coll). removeAll(Coll); isEmpty(); retainAll();
               contains(Object);containsAll(Coll)
           遍历方式:
              foreach()  iterator

         b、List:
           存储元素的特点:有序 可重复
           常见方法:add(Object) remove(Object); iterator();size();clear();
               addAll(Coll). removeAll(Coll); isEmpty(); retainAll();
               contains(Object);containsAll(Coll)
               多了一些对于索引的操作:
               get(index); set(index,Object); add(index,Object);
               remove(index); remove(Object);

           遍历方式:
              foreach()  iterator  for   listIterator

         c、Iterable:
           java.lang.Iterable,foreach语句的目标。

         d、set:
           存储元素的特点:无序 唯一
           常见方法:add(Object) remove(Object); iterator();size();clear();
               addAll(Coll). removeAll(Coll); isEmpty(); retainAll();
               contains(Object);containsAll(Coll)
           遍历方式:
              foreach()  iterator
         e、Map:
           存储元素的特点:key-value
           key 无序唯一 相当于一个Set集合
           value 无序可重复 相当于一个Collection集合

           常见方法:
             put(k,v);返回集合中是否存在对应的k 如果存在 返回对应的值
             如果不存在 返回null
             remove(k);
             containsKey(k); containsVlues(v);
             get(k)
           遍历方式:
             遍历key: keySet()---> foreach/iterator
               entrySet()---> foreach/iterator + (获取到一个Entry)+getkey();
             遍历value:values()---> foreach/iterator
               entrySet()---> foreach/iterator +(获取到一个Entry)+
               getVlues();
               keySet()---> foreach/iterator+map.getKey(k)
               entrySet()---> foreach/iterator + (获取到一个Entry)+map.getKey(Entry.getkey());
             遍历key-value:
               keySet()---> foreach/iterator+map.getKey(k)
               entrySet()---> foreach/iterator + entry.getKey()/entry.getValue();
         Entry:
           内部维护了当前map集合中的所有元素。(键-值)。
           对外提供了获取键和值的方法 getKey() getValue()
           map的实现类中通过内部类 都实现了Entry。实现类的对象中存在当前
           map中的所有数据信息。


        4、9个常用类:
         ArrayList:
          底层实现方式: 
           数组(长度可变的)
          存储元素特点;
           遍历 随机访问 效率高   添加 删除效率低
          常见方法:
            add(Object) remove(Object); iterator();size();clear();
            addAll(Coll). removeAll(Coll); isEmpty(); retainAll();
            contains(Object);containsAll(Coll)
            多了一些对于索引的操作:
            get(index); set(index,Object); add(index,Object);
            remove(index); remove(Object);
          迭代方式:
          foreach()  iterator  for   listIterator

       LinkedList:
        底层实现方式: 
           链表
          存储元素特点;
           遍历 随机访问 效率低  添加 删除效率高
          常见方法:
            add(Object) remove(Object); iterator();size();clear();
            addAll(Coll). removeAll(Coll); isEmpty(); retainAll();
            contains(Object);containsAll(Coll)
            多了一些对于表头表尾的操作:
            getFirst(); getLast();
          迭代方式:
          foreach()  iterator  for   listIterator
       HashSet:
        底层实现方式: 
           哈希表 (数组[存储元素位置]以及链表[存储数据])
           1.8之后 如果执行了rehash算法  将链表转为红黑树(二叉树)
           线程不安全。ConcurrentHashXXX。去解决
          存储元素特点;
           遍历 效率高  添加 删除效率高
          常见方法:
            add(Object) remove(Object); iterator();size();clear();
            addAll(Coll). removeAll(Coll); isEmpty(); retainAll();
            contains(Object);containsAll(Coll)
            
          迭代方式:
          foreach()  iterator 
        注意:
         如果将自定义对象作为hashset存储的元素,要注意,自定义对象所属的类(new的对象肯定是唯一的,大多数业务逻辑中可能看的是当前对象中的属性是否一致)必须要重写hashCode(原来计算当前存储元素的位置) 以及equals(确保存储元素是否唯一)方法。
       TreeSet:
       LinkedHashSet:
       HashMap:
       TreeMap:
       Arrays:
        对于数组的工具类:
        sort();排序指定数组
        binarySearch();对于排好序的数组进行查找
       Collections:
        对于集合的工具类:
        sort();排序指定集合
        binarySearch();对于排好序的集合进行查找

  • 相关阅读:
    redis的事务、主从复制、持久化
    redis的数据结构与命令
    redis的安装与配置
    JavaEE权限管理系统的搭建(八)--------角色的增删改
    JavaEE权限管理系统的搭建(七)--------管理用户的增删改
    JavaEE权限管理系统的搭建(六)--------使用拦截器实现菜单URL的跳转权限验证和页面的三级菜单权限按钮显示
    JavaEE权限管理系统的搭建(四)--------使用拦截器实现登录认证和apache shiro密码加密
    admin的基础配置
    ERP能解决企业五大不正常现象
    版本控制
  • 原文地址:https://www.cnblogs.com/yxmgg/p/9052928.html
Copyright © 2020-2023  润新知