摘要: 链路层的基本服务:将数据报通过单一通信链路从一个结点移动到相邻结点。 链路层的差错检测和纠正比运输层所提供的更为复杂,不仅能检测出帧中出现了差错,还能进行纠正。 链路层的服务多用硬件实现,但一些高级功能由软件实现。 差错检测:奇偶校验(或二维),检验和方法(数据之和的反码形成了报文中的检验和,tcp 阅读全文
posted @ 2019-08-26 09:57 zpncepu 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 面向连接的可靠数据传输协议 首部20字节,主要包括序号(32bit),确认号,源端口,目的端口号(16bit) 序号+累积确认+重传 流量控制:发送方维护接受窗口(接收方缓存空间大小) 四次挥手:全双工,一方请求断开连接,不代表另一方发送数据完毕。fin_wait1 (接收ack) >fin_wai 阅读全文
posted @ 2019-08-22 15:32 zpncepu 阅读(115) 评论(0) 推荐(0) 编辑
摘要: volatile变量两大特性: 1)线程可见性 2)禁止指令重排序 内存屏障: volatile变量的汇编代码中,在变量赋值之后,执行了一个lock开头的指令,lock指令使本cpu的cache写入内存,同时使其他cpu中缓存失效,这使得volatile变量的修改对其他cpu立即可见。内存屏障同时起 阅读全文
posted @ 2019-08-20 15:55 zpncepu 阅读(369) 评论(0) 推荐(0) 编辑
摘要: HashMap用一个Node数组保存所有的k-v对,数组中的一个位置被称为bucket,一个bucket中的第一个Node(也就是在Node数组中通过下标能访问到的那一个)是一个单链表或者一棵红黑树的根节点,所有被hash到同一个bucket的k-v对被保存在这个单链表或红黑树中(取决于同一个buc 阅读全文
posted @ 2019-08-20 15:31 zpncepu 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 类的生命周期: 加载,验证,准备,解析,初始化,使用,卸载。其中验证,准备,解析3个部分统称为连接。 加载,验证,准备,初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班的开始。 在且只在以下5种场景,必须对类进行初始化操作: 1)使用new关键字实例化对象的时候,读取或设置 阅读全文
posted @ 2019-08-17 23:00 zpncepu 阅读(96) 评论(0) 推荐(0) 编辑
摘要: JVM参数: 1)-Xmn: 新生代内存上限值 2)-Xms: 整个堆区初始内存分配的大小 3)-Xmx: 堆区内存的最大分配大小 4)-XX:SurvivorRatio: 决定eden与一个survivor大小之比 5)-XX:PretenureSizeThreshold: 大对象直接放入老年代, 阅读全文
posted @ 2019-08-16 16:48 zpncepu 阅读(169) 评论(0) 推荐(0) 编辑