摘要:
为了保证顺序性,每一个包都有一个 ID。在建立连接的时候,会商定起始的 ID 是什么,然后按照 ID 一个个发送。假设A发给B的数据流由一个500 000字节的文件组成,MSS为1000字节。数据流的首字节ID为0,那么TCP会将这个文件分为500个报文段,每一个报文段的首部序号字段中分别为0、10 阅读全文
摘要:
JDK1.8中StringTable的底层类似于HashTable,由数组和链表实现,数组又称为桶数组。比如有这样一段代码: public class Demo4 { public static void main(String[] args) { int i = 0; System.out.pri 阅读全文
摘要:
学习JVM的时候经常会遇到各种常量池,不同版本的JDK它们的存储位置也不同,这篇随笔就整理下几种常见的常量池,以JDK1.8为主。先看一张存储示意图,里面涉及1.8和1.6。 常量池是存储在方法区中的,比如我们有这样一段代码: public class Demo { public static vo 阅读全文
摘要:
我们知道堆中存放的是对象,对象不被引用就会被垃圾收集回收掉。但是如果对象一直存在强引用,那么就会一直存活,当存活对象达到一定数量时,就会把堆内存占满,从而发生堆内存溢出错误。比如有这样一段代码:逻辑是每次都往集合中添加一个字符串对象,然后字符串进行一次拼接。 public class Demo1 { 阅读全文