2018-02-20 Java虚拟机 JVM参数 1. 使用方式使用 -XX:+PrintFlagsFinal参数输出所有参数的名称和默认值,参数的使用方式如下: -XX:+<option>开启option参数 -XX:-<option>开启option参数 -XX:<option>=<value>开启option参数的值设置为value 2. 内存管理 参数名称 描述 -Xm... 阅读全文…
2018-02-11 计算机网络 超文本传输协议(HTTP) 1. 简介HTTP是位于应用层的一个无状态的协议,默认HTTP的端口号为80,HTTPS的端口号为443。HTTP协议本身是不可靠的实现,要实现可靠地数据传输需要依靠底层的TCP协议。 2. 实现HTTP的报文包括请求报文和响应报文两种 请求报文请求报文是浏览器向服务器发出请求的报文,由第一行的请求行和后面的首部行组成,每一行都由回车换行(\r\n)结尾,当请求的方法是POST的时候,会在首... 阅读全文…
2018-02-10 计算机网络 传输控制协议(TCP) 1. 简介TCP提供一种可靠的面向连接的全双工服务,位于传输层。 2. TCP报文段结构TCP报文段包括首部字段和数据字段,其中数据字段来自于应用层的数据,最大长度为MSS。 首部字段 源端口号(16 bit):发送进程所占用的端口号 目的端口号(16 bit):接收进程所占用的端口号 序号(32 bit):传输方向上对数据字节流中的每一个字节编号,这个序号就是发送方要传输的报文段中数据流的... 阅读全文…
2018-01-25 设计模式 代理模式(Proxy-Pattern) 1. 简介代理模式属于设计模式中的结构型模式,有静态代理和动态代理两种实现方式。代理模式使用代理类来控制访问委托类中方法或者增强委托类的功能。 2. 实现静态代理静态代理即是代理类在编译期间已知。 UML类图 ... 阅读全文…
2018-01-23 Java虚拟机 JVM类加载机制 1. 简介Java代码编译成字节码后,字节码需要通过虚拟机的加载才能运行 2. 类加载过程类加载的全过程分为5个阶段,其中验证、准备、解析属于连接阶段 加载 验证 准备 解析 初始化 加载加载是类加载过程的一个阶段,此阶段可以分为三步 通过一个类的全限定名(如java.lang.Object)来获取此类的二进制流 将这个字节流所代表的静态数据结构方法区运行时的数据结构 在内存中生成代表... 阅读全文…
2018-01-20 Java Java异常 1. 简介异常类继承图 异常 Java的错误类(Error)和异常类(Exception)都是Throwable的子类,基本由这两大类展开的。 ErrorError这个类通常指的是系统... 阅读全文…
2018-01-13 JDK源码解析 HashMap源码解析 1. 简介HashMapJava中的HashMap是符号表的一种哈希实现(采用拉链法),HashMap用来存储键值对,键和值都可以为Null,其中键是唯一的。在Java7中的实现是用数组+链表,在Java8中的实现是数组+链表+红黑树。因为引进了红黑树的,所以Java8中的HashMap的查找效率提高了不少。以下的讲解的源码也是Java8的源码。 拉链法 拉链法是一种处理哈希冲突的一种方法,... 阅读全文…
2017-12-09 计算机网络 地址解析协议(ARP) 1. 简介同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。如果知道其IP地址,则可以通过ARP(Address Resolution Protocol,地址解析协议)查询到其MAC地址。ARP仅用于IPv4,IPv6使用ICMPv6。 2. ARP帧格式 ... 阅读全文…
2017-12-07 计算机网络 动态主机配置协议(DHCP) 1. 简介 计算机要互联通信自身肯定需要网络 ,如IP地址、子网掩码、DNS服务器地址等。而为了实现IP地址的自动设置与统一分配,DHCP就这样孕育而生了。 动态主机配置协议(DHCP)是一个应用层协议,也就是位于TCP/IP 5层协议模型的第5层,同时它也是一个客户机-服务器协议。 DHCP的设计基于早期的Internet引导程序协议(BOOTP),使用UDP/IP协议,客户端使用端口68... 阅读全文…
2017-09-16 Java虚拟机 JVM垃圾回收机制(Garbage-Collection) 1. 概述在Java内存区域里讲了Java的内存运行时数据区域分为如下5个部分 程序计数器(Program Counter) 虚拟机栈(Virtual Machine Stack) 本地方法栈(Native Method Stack) 堆(Heap) 方法区(Method Area) 其中前三个数据区域随着线程的启动而创建,终止而销毁,这三个区域的内存回收具有确定性,不需要过多考虑回收问... 阅读全文…