自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 《Java 编程的逻辑》笔记——第2章 理解数据背后的二进制

文章目录开头语2.1 整数的二进制表示与位运算2.1.1 十进制2.1.2 正整数的二进制表示2.1.3 负整数的二进制表示2.1.4 十六进制2.1.5 位运算2.2 小数的二进制表示2.2.1 小数计算为什么会出错2.2.2 二进制表示2.3 字符的编码与乱码2.3.1 常见非 Unicode 编码2.3.1.1 ASCII2.3.1.2 ISO 8859-12.3.1.3 Windows-12522.3.1.4 GB23122.3.1.5 GBK2.3.1.6 GB180302.3.1.7 Big52

2020-07-30 23:33:02 243

原创 《Java 编程的逻辑》笔记——第1章 编程基础(二)

文章目录1.6 函数的用法1.6.1 定义函数1.6.2 函数调用1.6.3 进一步理解函数1.6.3.1 参数传递1.6.3.2 返回1.6.3.3 函数命名1.6.3.4 调用过程1.7 函数调用的基本原理1.7.1 栈的概念1.7.2 函数执行的基本原理1.7.3 数组和对象的内存分配1.7.4 递归调用的原理1.7.5 小结1.6 函数的用法1.6.1 定义函数如果需要经常做某一个操作,则类似的代码需要重复写很多遍。比如在一个数组中查找某个数,第一次查找一个数,第二次可能查找另一个数,每查一个

2020-07-30 17:51:25 171

原创 《Java 编程的逻辑》笔记——第1章 编程基础(一)

文章目录开头语1.1 数据类型和变量1.1.1 数据类型1.1.2 变量1.2 赋值1.2.1 基本类型1.2.1.1 整数类型1.2.1.2 小数类型1.2.1.3 真假类型1.2.1.4 字符类型1.2.1.5 一些说明1.2.2 数组类型1.2.2.1 赋值语法1.2.2.2 数组和基本类型的区别1.2.2.3 为什么数组要用两块空间1.3 基本运算1.3.1 算术运算1.3.1.1 加减乘除注意事项1.3.1.2 小数计算结果不精确1.3.1.3 自增(++)/自减(--)1.3.2 比较运算符1.

2020-07-25 23:24:42 299

原创 《大话数据结构》笔记——第9章 排序(一)

文章目录9.1 开场白9.2 排序的基本概念与分类9.2.1 排序的稳定性9.2.2 内排序与外排序9.2.3 排序用到的结构与函数9.3 冒泡排序9.3.1 最简单排序实现9.3.2 冒泡排序算法9.3.3 冒泡排序优化9.3.4 冒泡排序复杂度分析9.4 简单选择排序9.4.1 简单选择排序算法9.4.2 简单选择排序复杂度分析9.5 直接插入排序9.5.1 直接插入排序算法9.5.2 直接插入排序复杂度分析9.1 开场白略9.2 排序的基本概念与分类排序是我们生活中经常会面对的问题。同学们做操

2020-07-22 23:54:55 302

原创 《大话数据结构》笔记——第8章 查找(四)

文章目录8.9 散列表查找( 哈希表 )概述8.9.1 散列表查找定义8.9.2 散列表查找步骤8.10 散列函数的构造方法8.10.1 直接定制法8.10.2 数字分析法8.10.3 平方取中法8.10.4 折叠法8.10.5 除留余数法8.10.6 随机数法8.11 处理散列冲突的方法8.11.1 开放定址法8.11.2 再散列函数法8.11.3 链地址法8.11.4 公共溢出区法8.12. 散列表查找实现8.12.1 散列表查找算法实现8.12.2 散列表查找性能分析8.13 总结回顾8.9 散列表

2020-07-20 15:47:30 237

原创 《大话数据结构》笔记——第8章 查找(三)

文章目录8.8 多路查找树(B 树)8.8.1 2-3 树8.8.2 2-3-4 树8.8.3 B 树8.8.4 B+ 树8.8 多路查找树(B 树)内存一般都是由硅制的存储芯片组成,这种技术的每一个存储单位代价都要比磁存储技术昂贵两个数量级,因此基于磁盘技术的外存,容量比内存的容量至少大两个数量级。这也就是目前 PC 通常内存几个 G 而已、而硬盘却可以成百上千 G 容量的原因。前面讨论过的数据结构,处理数据都是在内存中,因此考虑的都是内存中的运算时间复杂度。但如若我们要操作的数据集非常大,大到内

2020-07-19 16:54:49 178

原创 《计算机网络》笔记——第5章 运输层(二)

文章目录5.6 TCP 可靠传输的实现5.6.1 以字节为单位的滑动窗口5.6.2 超时重传时间的选择5.6.3 选择确认 SACK5.7 TCP 的流量控制5.7.1 利用滑动窗口实现流量控制5.7.2 必须考虑传输效率5.8 TCP 的拥塞控制5.8.1 拥塞控制的一般原理5.8.2 TCP 的拥塞控制方法5.8.3 主动队列管理 AQM5.9 TCP 的运输连接管理5.9.1 TCP 的连接建立5.9.2 TCP 的连接释放5.9.3 TCP 的有限状态机5.6 TCP 可靠传输的实现5.6.1

2020-07-16 22:10:47 310

原创 《计算机网络》笔记——第5章 运输层(一)

文章目录5.1 运输层协议概述5.1.1 进程之间的通信5.1.2 运输层的两个主要协议5.1.3 运输层的端口5.2 用户数据报协议 UDP5.2.1 UDP 概述5.2.2 UDP 的首部格式5.3 传输控制协议 TCP 概述5.3.1 TCP 最主要的特点5.3.2 TCP 的连接5.4 可靠传输的工作原理5.4.1 停止等待协议5.4.1.1 无差错情况5.4.1.2 出现差错5.4.1.3 确认丢失和确认迟到5.4.1.4 信道利用率5.4.1.5 停止等待协议要点5.4.2 连续 ARQ 协

2020-07-14 20:23:54 658

原创 《大话数据结构》笔记——第8章 查找(二)

文章目录8.6 二叉排序树8.6.1 二叉排序树查找操作8.6.2 二叉排序树插入操作8.6.3 二叉排序树删除操作8.6.4 二叉排序树总结8.7 平衡二叉树( AVL树 )8.7.1 平衡二叉树实现原理8.7.2 平衡二叉树实现算法8.6 二叉排序树假设查找的数据集是普通的顺序存储,那么插入操作就是将记录放在表的末端,给表记录数加一即可,删除操作可以是删除后,后面的记录向前移,也可以是要删除的元素与最后一个元素互换,表记录数减一,反正整个数据集也没有什么顺序,这样的效率也不错。应该说,插入和删除对于

2020-07-12 19:23:48 303

原创 《剑指 Offer》——24、二叉树中和为某一值的路径

1. 本题知识点二叉树2. 题目描述输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。下面的二叉树有两条和为 22 的路径:10, 5, 7 和 10, 12 10 / \ 5 12 / \ 4 7 3. 解题思路编写函数如下:如果当前结点为空,直接返回将当前结点加入路径如果当前路径结点值的和小于输

2020-07-10 23:43:51 272

原创 《剑指 Offer》——59、按之字形顺序打印二叉树

1. 本题知识点二叉树、队列2. 题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。3. 解题思路创建一个队列。创建一个线性表,其中一个元素是一层二叉树。将二叉树的根节点加入队尾设置一个标志为 false当队列不为空时,执行以下循环记录本层二叉树的结点数当本层二叉树的结点数大于 0,执行以下循环删除队头将删除的队头加入本层二叉树的线性表将删除的队头的左右子树加入队尾本层二叉

2020-07-10 21:08:50 312

原创 《剑指 Offer》——60、把二叉树打印成多行

1. 本题知识点二叉树、队列2. 题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。3. 解题思路创建一个队列。创建一个线性表,其中一个元素是一层二叉树。将二叉树的根节点加入队尾当队列不为空时,执行以下循环记录本层二叉树的结点数当本层二叉树的结点数大于 0,执行以下循环删除队头将删除的队头加入本层二叉树的线性表将删除的队头的左右子树加入队尾本层二叉树结点树减 1将本层二叉树的线性表加入线性表返回线性表4. 代码public class

2020-07-10 20:33:13 288

原创 《剑指 Offer》——22、从上往下打印二叉树

1. 本题知识点二叉树2. 题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。3. 解题思路创建一个队列,创建一个线性表将二叉树的根节点加入队尾当队列不为空时,循环以下过程删除队头将删除的队头加入线性表将删除的队头的左右子树加入队尾返回线性表4. 代码public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public

2020-07-10 19:24:17 277

原创 《剑指 Offer》——58、对称的二叉树

1. 本题知识点二叉树2. 题目描述请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。对称的二叉树: 8 / \ 10 10 / \ / \ 11 9 9 113. 解题思路如果根结点为空,则二叉树是对称的如果根结点不为空,则判断根节点的左子树和右子树是不是对称如果左右子树都为空,则二叉树是对称的如果一个为空,另一个不为空,则二叉树不是对

2020-07-09 22:19:38 219

原创 《计算机网络》笔记——第4章 网络层(三)

文章目录4.5 互连网的路由选择协议4.5.1 有关路由选择协议的几个基本概念4.5.1.1 理想的路由算法4.5.1.2 分层次的路由选择协议4.5.2 内部网关协议 RIP4.5.2.1 工作原理4.5.2.2 距离向量算法4.5.2.3 RIP2 协议的报文格式4.5.3 内部网关协议 OSPF4.5.3.1 OSPF 协议的基本特点4.5.3.2 OSPF 的五种分组类型4.5.4 外部网关协议 BGP4.5.5 路由器的构成4.5.5.1 路由器的结构4.5.5.2 交换结构4.6 IPv64.7

2020-07-08 19:02:33 663

原创 《Java 多线程编程核心技术》笔记——第2章 对象及变量的并发访问(三)

文章目录2.2 synchronized 同步语句块2.2.9 静态同步 synchronized 方法与 synchronized(class) 代码块2.2.10 数据类型 String 的常量池特性2.2.11 同步 synchronized 方法无限等待与解决2.2.12 多线程的死锁2.3.13 内置类与静态内置类2.2.14 内置类与同步:实验12.2.15 内置类与同步:实验22.2.16 锁对象的改变2.2 synchronized 同步语句块2.2.9 静态同步 synchronize

2020-07-08 12:36:06 194

原创 《Java 多线程编程核心技术》笔记——第2章 对象及变量的并发访问(四)

2.3 volatile 关键字关键字 volatile 的主要作用是使变量在多个线程间可见。2.3.1 同步死循环创建一个公共类public class Service1 { private boolean isContinuePrint = true; public boolean isContinuePrint() { return isContinuePrint; } public void setContinuePrint(boole

2020-07-08 12:18:06 196

原创 《Java 多线程编程核心技术》笔记——第2章 对象及变量的并发访问(二)

文章目录2.2 synchronized 同步语句块2.2.1 synchronized 方法的弊端2.2.2 synchronized 同步代码块的使用2.2.3 用同步代码块解决同步方法的弊端2.2.4 一半异步,一半同步2.2.5 synchronized 代码块间的同步性2.2.6 验证同步 synchronized(this) 代码块是锁定当前对象的2.2.7 将任意对象作为对象监视器2.2.8 细化验证 3 个结论2.2.9 静态同步 synchronized 方法与 synchronized(

2020-07-08 12:16:28 181

原创 《Java 多线程编程核心技术》笔记——第1章 Java 多线程技能(二)

文章目录1.7 停止线程1.7.1 停止不了的线程1.7.2 判断线程是否是停止状态1.7.3 能停止的线程——异常法1.7.4 在沉睡中停止1.7.5 能停止的线程——暴力停止1.7.6 方法 stop() 与 java.lang.ThreadDeath 异常1.7.7 释放锁的不良后果1.7.8 使用 return 停止线程1.8 暂停线程1.8.1 suspend 与 resume 方法的使用1.8.2 suspend 和 resume 方法的缺点——独占1.8.3 suspend 和 resume

2020-07-08 12:08:16 233

原创 《计算机网络》笔记——第4章 网络层(二)

文章目录4.3 划分子网和构造超网4.3.1 划分子网4.3.1.1 从两级 IP 地址到三级 IP 地址4.3.1.2 子网掩码4.3.2 使用子网时分组的转发4.3.3 无分类编址 CIDR4.3.3.1 网络前缀4.3.3.2 最长前缀匹配4.3.3.3 使用二叉线索查找路由表4.4 网际控制报文协议 ICMP4.4.1 ICMP 报文的种类4.4.2 ICMP 的应用举例4.3 划分子网和构造超网4.3.1 划分子网4.3.1.1 从两级 IP 地址到三级 IP 地址在 ARPANET

2020-07-05 21:13:19 739 3

原创 《计算机网络》笔记——第4章 网络层(一)

文章目录4.1 网络层提供的两种服务4.1.1 一种观点:让网络负责可靠交付4.1.2 另一种观点:网络提供数据报服务4.1.3 虚电路服务与数据报服务的对比4.2 网际协议 IP4.2.1 虚拟互连网络4.2.2 分类的 IP 地址4.2.2.1 IP 地址及其表示方法4.2.2.2 常用的三种类别的 IP 地址4.2.3 IP 地址与硬件地址4.2.4 地址解析协议 ARP4.2.5 IP 数据报的格式4.2.5.1 IP 数据报首部的固定部分中的各字段4.2.5.2 IP 数据报首部的可变部分4.

2020-07-04 19:13:58 615

原创 《剑指 Offer》——18、二叉树的镜像

1. 本题知识点二叉树2. 题目描述操作给定的二叉树,将其变换为源二叉树的镜像。源二叉树: 8 / \ 6 10 / \ / \ 5 7 9 11镜像二叉树: 8 / \ 10 6 / \ / \ 11 9 7 53. 解题思路如果当前结点为空,直接返回交换当前结点的左右子树递归左右子树4. 代码public clas

2020-07-03 20:02:02 173

原创 《剑指 Offer》——16、合并两个排序的链表

1. 本题知识点链表2. 题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。3. 解题思路创建一个新链表,每次比较输入的两个链表,将其中值较小的结点用尾插法插入新链表,最后返回新链表。4. 代码public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}publi

2020-07-03 19:07:39 192

原创 《大话数据结构》笔记——第8章 查找(一)

文章目录8.1 开场白8.2 查找概述8.3 顺序查找8.3.1 顺序表查找算法8.3.2 顺序表查找优化8.4 有序表查找8.4.1 折半查找8.4.2 插值查找8.4.3 斐波那契查找8.5 线性索引查找8.5.1 稠密索引8.5.2 分块索引8.5.3 倒排索引8.1 开场白略8.2 查找概述只要你打开电脑,就会涉及到查找技术。如炒股软件中查股票信息、硬盘文件中找照片、在光盘中搜 DVD ,甚至玩游戏时在内存中查找攻击力、魅力值等数据修改用来作弊等,都要涉及到查找。当然,在互联网上査找信息就更

2020-07-03 15:57:30 417

原创 《剑指 Offer》——15、反转链表

1. 本题知识点链表2. 题目描述输入一个链表,反转链表后,输出新链表的表头。3. 解题思路创建一个新链表,将原链表用头插法插入新链表,最后返回新链表。4. 代码public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}public class Solution { /** * 输入一个链表,反

2020-07-01 21:03:55 185

原创 《剑指 Offer》——14、链表中倒数第 K 个结点

1. 本题知识点链表2. 题目描述输入一个链表,输出该链表中倒数第 k 个结点。3. 解题思路设置两个指针 P1 和 P2,让它们都指向链表第一个结点先让 P1 移动 K 个节点,则还有 N - K 个节点可以移动。(假设 K = 3,N = 5)然后让 P1 和 P2 同时移动,当 P1 移动到链表结尾时,P2 移动到第 N - K 个结点处,该位置就是倒数第 K 个结点。4.代码public class Solution { /** * 输入一个

2020-07-01 14:03:32 181

原创 《剑指 Offer》——13、调整数组顺序使奇数位于偶数前面

1. 本题知识点数组2. 题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。例如:Input:[1,2,3,4,5]Output:[1,3,5,2,4]3. 解题思路创建一个奇数数组和一个偶数数组,将原数组中的奇数和偶数分别加入其中,最后将奇数数组和偶数数组赋值给原数组。原数组:[1,2,3,4,5]奇数数组:[1,3,5]偶数数组:[2,4]赋

2020-07-01 11:58:46 172

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除