- 博客(16)
- 收藏
- 关注
原创 [计网] 运输层:TCP的连接建立与连接释放
TCP的连接建立与连接释放1.TCP的连接建立2. TCP的连接释放1.TCP的连接建立B 的TCP 服务器进程先创建传输控制块TCB, 准备接受客户进程的连接请求。然后服务器进程就处于LISTEN (收听)状态,等待客户的连接请求。如有,即作出响应。A 的TCP 客户进程也是首先创建传输控制模块TCB 。然后,在打算建立TCP 连接时,向B 发出连接请求报文段,这时首部中的同步位SYN...
2019-08-05 14:43:15
352
原创 [JVM] 2.6 虚拟机执行子系统:方法调用
3. 方法调用方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程。在程序运行时,进行方法调用是最普遍、最频繁的操作,但前面已经讲过, Class 文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址(相当于之前说的直接引用)它这个...
2019-04-27 19:28:54
390
原创 [JVM] 2.5 虚拟机执行子系统5:运行时栈帧结构
运行时栈帧结构1. 概述2. 运行时栈帧结构2.1 局部变量表2.2操作数栈(Operand Stack)2.3 动态连接(Dynamic Linking)2.4 方法返回地址2.5 附加信息本篇博客内容基本出自《深入理解java虚拟机》代码编译的结果从本地机器码转变为字节码,是存储格式发展的—小步,却是编程语言发展的一大步。1. 概述执行引擎是Java 虚拟机最核心的组成部分之一。“虚拟...
2019-04-23 19:44:58
345
原创 [JVM]2.4 虚拟机执行子系统:虚拟机类加载器
虚拟机类加载器1. 类与类加载器2. 双亲委派模型3. 破坏双亲委派模型3.1 第一次“被破坏”3.2 第二次“被破坏”3.3 第三次“被破坏”本篇博客内容基本出自《深入理解java虚拟机》代码编译的结果从本地机器码转变为字节码,是存储格式发展的—小步,却是编程诏言发展的一大步。1. 类与类加载器虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到...
2019-04-23 15:52:00
256
原创 [JVM]2.3 虚拟机执行子系统:虚拟机类加载时机与过程
虚拟机类加载时机与过程1. 概述2. 类加载的时机3. 类加载的过程3.1 加载3.2 验证文件格式验证元数据验证字节码验证符号引用验证3.3 准备3.4 解析类或接口的解析字段解析类方法解析接口方法解析3.5 初始化本篇博客内容基本出自《深入理解java虚拟机》代码编译的结果从本地机器码转变为字节码,是存储格式发展的—小步,却是编程诏言发展的一大步。1. 概述上一说我们了解了Class ...
2019-04-23 15:22:47
190
原创 [JVM]1.3 自动内存管理机制:内存分配策略
内存分配策略内存分配与回收策略1. 对象优先在Eden分配2. 大对象直接进入老年代3. 长期存活的对象将进入老年代4. 动态对象年龄判定5. 空间分配担保本篇博客内容基本出自《深入理解java虚拟机》 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。内存分配与回收策略Java技术体系中所提倡的自动内存管理最终可以归结为自动化...
2019-04-22 21:52:30
170
原创 [JVM]2.1 虚拟机执行子系统:类文件结构
类文件结构无关性的基石Class 类文件的结构1. 魔数与Class文件的版本2. 常量池3. 访问标志4. 类索引、父类索引与接口索引集合5. 字段表集合6. 方法表集合7. 属性表集合7.1 Code属性7.2 Exception属性7.3 LineNumberTable属性7.4 LocalVariableTable属性7.5 SourceFile属性7.6 ConstantValue属性7...
2019-04-22 20:31:29
261
原创 [Java集合]Map源码分析:HashMap(下)
Java集合Map源码分析:HashMap(下)1. 视图1.1 keySet()1.2 HashIterator1.3 transient1.4 Spliteratorvalues()entrySet()2. Overrides of JDK8 Map extension methods3. LinkedHashMap support4. Cloning and serialization1....
2019-04-21 11:11:09
407
原创 [Java集合]Map源码分析:HashMap红黑树解析
数据结构:红黑树1. 红黑树的演变2. 红黑树的性质3. 红黑树的实现3.1 HashMap中的红黑树3.1.1 TreeNode的结构3.1.2 treeify() & untreeify()3.1.3 split()3.1 左旋与右旋3.2 红黑树的插入3.3 红黑树的删除1. 红黑树的演变此部分的思想来自于Sedgewick的《 算法[第四版] 》。参考博客:https://b...
2019-04-20 22:32:58
427
原创 [Java集合]Map源码分析:HashMap(上)
Java集合Map源码分析:HashMap1 数据结构2 顶部注释3 定义静态全局变量静态内部类 Node1 数据结构 HashMap的数据结构是数组+链表+红黑树(红黑树since JDK1.8)。我们常把数组中的每一个节点称为一个桶。当向桶中添加一个键值对时,首先计算键值对中key的hash值,以此确定插入数组中的位置,但是可能存在同一hash值的元素已经被放在数组同一位置了,这种现象...
2019-04-17 21:05:51
769
原创 [JVM]1.2 自动内存管理机制:垃圾收集器
垃圾收集器与内存分配策略1 对象已死吗1.1 引用计数算法1.2 可达性分析算法1.3 引用1.4 生存还是死亡1.5 回收方法区2 垃圾收集算法2.1 标记-清除算法(Mark-Sweep)2.2 复制算法2.3 标记一整理算法(Mark-Compact)2.4 分代收集算法( Generational Collection)3 HotSpot 的算法实现3.1 枚举根节点3.2 安全点3.3 ...
2019-04-14 23:12:05
668
原创 [JVM] 1.1 自动内存管理机制:java内存区域与内存溢出异常
java内存区域与内存溢出异常1.运行时数据区域1.1 程序计数器1.2 Java虚拟机栈1.3 本地方法栈1.4 Java堆1.5 方法区1.6 运行时常量池1.7 直接内存2. HotSpot虚拟机对象2.1 对象的创建2.2 对象的内存布局2.3 对象的访问定位本篇博客内容基本出自《深入理解java虚拟机》 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面...
2019-04-14 21:34:24
153
原创 [算法]暴力求解法:回溯法
回溯法八皇后问题素数环(Prime Ring Problem)在递归构造中,生成和检查过程可以有机结合起来,从而减少不必要的枚举,这就是回溯法。当把问题分成若干步骤并递归求解时,如果当前步骤没有合法选择,则函数将返回上一级递归调用,这种现象称为回溯。正是因为这个原因,递归枚举算法常被称为回溯法,应用十分普遍。八皇后问题问题:在棋盘上放置8个皇后,使得它们互不攻击,此时每个皇后的攻击范围为同行...
2019-04-11 17:56:19
642
原创 [算法]暴力求解法:子集生成
子集生成增量构造法位向量法二进制法增量构造法每次选择一个元素放到集合A中,使用递归import java.util.*;import java.util.Arrays;public class Main { public static void subset(int n,int[] a,int cur) { for(int i=0;i<cur;i++) { Syste...
2019-04-11 15:49:02
320
1
原创 [算法]暴力求解法:枚举排列
枚举排列生成1~n的排列生成可重集的排列生成1~n的排列输入n,然后生成1-n的全排列,按照字典序,比如输入3,那么按字典序排列为123,132,213,231,312,321。思路就是第一位是1,那么后面就是2-n的排列,然后再按照字典序输出2~n的排列,可以用一个函数进行递归import java.util.*;public class Main { public static v...
2019-04-11 15:10:46
449
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人