文章目录
前言
虽然现阶段的学习是以清楚知识点,知道编程语法为主要任务,但是不应该把所有重心放在上面,否则就会导致出现“纸上谈兵”的尴尬境地。知道底层代码逻辑,并不代表你掌握了实在的编程技巧。JAV学习就像学车,不达到一定公里数,车技是不会有提升的的——这是经过第二次阶段检测后我的想法。
Set系列集合
特点
无需:存取序列不一致
不重复:可以去除重复
无索引:没有带索引的方法,不能使用普通for循环遍历,也不能通过索引来获取元素
set实现类的集合特点
HashSet
无序、不重复、无索引
LinkedHashSet
有序、不重复、无索引
TreeSet
可排序、不重复、无索引
HashSet底层原理
HashSet底层采用哈希表存储数据。
哈希表组成:数组+列表+红黑树;
哈希值:对象的整数实现形式

哈希值:
根据HashCode方法计算出来的int证整数
该方法在Object类当中,所有对象都可以调用,默认使用地址值进行计算
一般情况下会重写HashCode方法,使用对象内部属性值进行计算。
对象哈希值的特点
1 如果没有重写HashCode方法,不同对象计算出的哈希值是不同的
2 如果重写方法,不同的对象只要属性相同计算出的哈希值是一样的
3 小概率情况下会出现哈希碰撞
LinkedHashSet
特点
使用双链表记录添加顺序
如果要求数据去重,默认使用HashSet,只有排序时使用LinkedHashSet
TreeSet
默认规则:
对于Intger、Double,默认按从小到大排序;
对于字符,字符串按照ASCII码表排序
数据结构

基本内容
**度:**每个节点子节点的数量
**二叉树:**任意节点的度<=;
**高度:**总层数;
**根节点:**最顶层的节点
根节点左/右子树
二叉查找树
特点:左子数小于结点,右子数大于结点
前序遍历
从根节点开始,按照当前结点,左子结点,右结节点的顺序进行遍历
中序遍历
从最左边的子节点开始,按照左子结点,当前结点,右子结点的顺序进行遍历
后序遍历
从最左边子节点开始,然后按照左子结点,右子结点,当前节点的顺序进行遍历
层序遍历
从根节点开始一层一层的遍历
二叉平衡树
注意点:任意节点左右子树高度差不超过一
平衡机制
旋转
情景一

**步骤:**1.以不平衡的点为支点
2.支点左旋降级,变为左子支点
3.晋升原来的右子支点
情景二

步骤
以不平衡的点为支点
将根节点右侧往左拉
原先的右子节点变成新的父节点,并把多余的左子节点让出,给已降级的根节点当右子节点

右旋同理
红黑树(二叉查找b树)

红黑规则
1 每个节点必须是红或者黑的
2 根节点必须是黑色
3 如果一个节点没有子节点或父节点,该节点相应的指针属性值为nil,这些Nil视为叶节点
4 如果某一个节点是红色,那么他的子节点必须是黑色
5 对每个结点而言,从该节点到其所有后代节点的叶节点的简单路径上,均包含相同数目的黑色节点

添加节点规则

网络编程
基本通讯架构
cs架构(C客户端/S服务端)
bs架构(B浏览器/S服务端)
网络通讯三要素
IP地址
分配给上网设备的唯一标志
IPV4

IPV6


InetAdress
待变IP地址

端口
应用程序在设备中的唯一标识
端口号
范围:0~65535
分类:
周知端口 0-1023
注册端口: 1024~49151
动态端口: 49152~65535
协议
连接和数据在网络中传输的规则
**通信协议:**网络上的通讯设备,事先规定的链接规则,以及传输数据的规则被称为通讯网络协议。

UDP(用户数据报协议)
**特点:**无连接,不可靠协议
不事先建立链接,数据按包发,一般数据包包含:自己IP、程序端口,目的地IP 程序端口 和数据(64kb)。
发送方不管对方是否在线,数据在中间丢失也不管,接收方接收数据也不确认
TCP通信协议
**特点:**面向连接,可靠通信
三个步骤实现可靠传输:三次握手建立连接,传输数据确认,四次挥手断开连接。
可靠连接:确定通讯双方,收发消息正常无问题。
小结
第二次考核从预估来看是个灾难,学过的东西在应试上表现出了不成熟,至少说明本人复习不是很到位;嗲马蹄上也因为上周的“先看再敲”方法导致对API的运用不是很熟悉。总之,第二阶段学习成果不理想,而不理想的代价就是需要使用提前空余时间去弥补。
下周规划:查缺补漏,完成阶段性项目“拼图游戏”;
861

被折叠的 条评论
为什么被折叠?



