摘要:
HashMap、HashSet、HashTable之间的区别是Java程序员的一个常见面试题目,在此仅以此博客记录,并深入源代码进行分析: 在分析之前,先将其区别列于下面 1:HashSet底层采用的是HashMap进行实现的,但是没有key-value,只有HashMap的key set的视图,H 阅读全文
摘要:
HashMap、HashSet、HashTable之间的区别是Java程序员的一个常见面试题目,在此仅以此博客记录,并深入源代码进行分析: 在分析之前,先将其区别列于下面 1:HashSet底层采用的是HashMap进行实现的,但是没有key-value,只有HashMap的key set的视图,H 阅读全文
摘要:
在HashMap和HashTable中的key值是不允许重复的,否则新的value会覆盖旧的value,那么是如何判断key值是否重复的。我们先来看一下存值的put()函数 判断key是否存在的时候,是先比较key的hashcode,然后再比较相等或equals的,如果原本已经存在对应的key,则直 阅读全文
摘要:
MSS:最大报文段长度,表示TCP传往另一端的最大块数据的长度。当一个链接建立时,链接的双方都要通报各自的MSS。通常MSS是1024。 TCP半关闭:TCP提供了连接的一段在结束的发送后还能接收来自另一端数据的能力。(连接的一方主动发出FIN,接着另一端对这个FIN发出ACK,如果主动方在接收到A 阅读全文
摘要:
具体的关于TCP是什么,我不打算详细的说了;当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续。它只是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。首先来看看OSI的七层模型: 我们需要知道TCP工作在网络OSI的七层模型中的第四层——T 阅读全文
摘要:
1、为什么我们已经讨论的所有 I n t e r n e t协议(I P, ICMP, IGMP, UDP, TCP)收到有检验和错 的分组都仅作丢弃处理? 当分组的checksum与接收方的计算结果不一致的时候,有三种处理方案:一是立即通知发送方重传;二是直接丢弃分组,等待发送方定时器超时后重传; 阅读全文
摘要:
在说内联函数之前,先说说函数的调用过程。 调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到 转去执行该函数前的地方。这种转移操作要求在转去前要保护现场并记忆执行的地址,转回后先要恢复现场,并按原来保 存地址继续执行。也就是通常说的压栈和出栈。因此 阅读全文
摘要:
JVM垃圾回收 程序计数器、虚拟机栈和本地方法栈3各区域随线程而生,随线程而死,所以不需要过多考虑回收的问题,方法或线程结束时,内存自然就随着回收了。 那么什么时候会触发一个对象的回收的呢? 1、 对象没有引用 2、 作用域发生未捕获异常 3、 程序在作用域正常执行完毕 4、 程序执行了System 阅读全文
摘要:
由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。 java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途已及创建和销毁的时间。java虚拟机所管理的内存将会包括以下几个运行时数据区域。 第一 阅读全文
摘要:
程序的概念:程序是指令的有序集合,是一个静态概念,本身是没有任何运行的含义。 进程概念:进程是程序在处理机上的一次动态执行过程,它经历了从代码加载、执行到执行完毕的一个完整过程。 线程概念:线程是进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位 进程的特性: 1、独 阅读全文
摘要:
1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 J 阅读全文
|