摘要: 传输层详解 1.传输层概述 1.1 概述 TCP隶属于传输层,所以要首先明白传输层的作用是什么,传输层能够实现端到端的连接。比如说我们用QQ与别人发信息,网络层能够将信息发送到对方的主机上,主机上使用什么协议来接受这个信息就由传输层来完成,所以传输层实现的是进程到进程间的连接。 传输层提供的是应用程 阅读全文
posted @ 2021-08-04 13:55 Curryxin 阅读(950) 评论(0) 推荐(2) 编辑
摘要: 输入网址后发生了什么 1. DNS域名解析 从我们是输入的URL到获得目的ip地址的过程,这是一个递归查询的过程。 首先应该查询缓存,依次查找浏览器DNS缓存-->本地系统DNS缓存-->本地计算机host文件-->ISP的DNS缓存-->递归搜索。 递归搜索的顺序:根域名服务器-->com顶级域名 阅读全文
posted @ 2021-07-29 16:56 Curryxin 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 应用层详解 1.应用层概述 应用层是分层模型的最高层,用于为用户提供服务。从应用层来看通信,是两个通信端点之间进程之间的逻辑通信,虽然在实际中存在多个物理链路,但是对应用层而言,其只关注程序A到程序B的连接 2. Http协议 问:http的无状态指的是什么意思? Http是无状态的,也就是说htt 阅读全文
posted @ 2021-07-29 16:41 Curryxin 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 二叉树 1.基本概念 二叉树是每个节点最多有两个子树的树结构,度可能是0,1,2; 完成二叉树:从左到右依次填满; 满二叉树:除了叶子节点,所有节点都有两个孩子,并且所有叶子节点在同一层; 2.性质 1.完全二叉树除了最后一层外,下一层节点个数是上一层两倍, 如果一颗完全二叉树的节点总数是n,那么叶 阅读全文
posted @ 2021-07-26 21:48 Curryxin 阅读(881) 评论(4) 推荐(1) 编辑
摘要: 死锁 1.概念 一个很通俗易懂的例子:假设有红蓝两把钥匙开红蓝两个门,两个人分别执行六条指令,最后要能够都把两扇门打开。 注意红蓝钥匙都各只有一把,也就是说两个人共享这对钥匙。 比如下面这幅图的解法: 两个人同时执行,A能够顺利把门打开,因为它正好在第3步的时候能拿到B归还后的红钥匙,但是对B就不一 阅读全文
posted @ 2021-12-03 22:34 Curryxin 阅读(252) 评论(0) 推荐(1) 编辑
摘要: 问:需求分析和系统设计? 需求分析与系统设计是软件生存期中最重要的两个步骤,需求分析需要解决的是“做什么”的问题,而系统设计则是解决“怎么做”的问题; 需求分析主要是确定待开发软件的功能、性能、界面等要求,包括需要输入什么数据,要得到什么结果,最后应输出什么,需求分析就是确定计算机是做什么的;要达到 阅读全文
posted @ 2021-12-02 10:34 Curryxin 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 由查找说起 查找是一种太为常见的操作,关于查找诞生了很多数据结构。 其中最简单的当属于数组 数组的一个特点就是可以直接寻址,能够在O(1)时间内访问任意元素。 1.顺序查找 顺序查找是一种最简单直接暴力的查找了,也就是从头到尾进行遍历,找到了就停止,所以其时间复杂度为0(n)。 2.二分查找 二分查 阅读全文
posted @ 2021-12-02 10:33 Curryxin 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 数据库 1.数据库概述 使用数据库的好处: 1.持久化数据到本地; 2.实现结构化查询,方便管理; 相关概念 DB:数据库,保存一组有组织的数据的容器; DBMS:数据库管理系统,又叫数据库软件,用于管理DB中的数据; SQL:结构化查询语言,用于和DBMS通信的语言; 数据库存储的特点 数据放入表 阅读全文
posted @ 2021-12-02 10:30 Curryxin 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 问:什么是操作系统? 操作系统其实也是一种软件,不过这个软件不同于用的应用软件,这个软件比较底层,操作系统就是在硬件和软件之间的一个中间层;能够保证软件对内存包括CPU正确的交互; 问:操作系统的内存?虚拟内存? 在操作系统中,现在普遍采用的是分层存储的体系,也就是磁盘、内存、高速缓存的金字塔结构; 阅读全文
posted @ 2021-12-01 21:07 Curryxin 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 物理、链路、网络及总览 不同层常用协议 问:为什么要分层? 复杂的系统需要分层,比如常用的项目也是需要分层的,比如数据库操作、业务操作、前后端交互等,比如计算机网络里的分层,这样每一层就只需要专注于一类事情。具体的,在计算机网络里 1.各层之间相互独立,不需要关心其他层是怎么实现的,只需要知道自己如 阅读全文
posted @ 2021-11-29 22:24 Curryxin 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 多线程 问:进程和线程的区别? 进程是运行着的程序,是资源分配的最小单位,进程之间是相互独立的; 线程是进程的单位,一个进程可以有多个线程,像是工厂里的流水线,是一条执行路径; 线程之间并不完全独立,共享运行栈和程序计数器,有自己独立的堆和方法区; 问:多线程和多进程的区别? 多进程中占用内存多,而 阅读全文
posted @ 2021-11-28 11:33 Curryxin 阅读(40) 评论(0) 推荐(0) 编辑
摘要: JAVA基础 问:面向过程(POP)和面向对象(OOP)? 面向过程主要是指从前到后的执行,强调的是一种功能行为,是以函数为最小单位的,主要考虑从前到后该怎么做; 面向对象指的是把一些属性和方法给提取出来组合成一个类,主要强调的是具有功能的对象,是以类/或者说对象为最小单位的,考虑的是谁来做; 问: 阅读全文
posted @ 2021-11-28 11:31 Curryxin 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 862. 和至少为 K 的最短子数组 知识点:单调;队列;前缀和 题目描述 返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K 。 如果没有和至少为 K 的非空子数组,返回 -1 。 示例 输入:A = [1], K = 1 输出:1 输入:A = [1,2], K = 4 输出:-1 阅读全文
posted @ 2021-09-15 22:02 Curryxin 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 895. 最大频率栈 知识点:栈;哈希表 题目描述 实现 FreqStack,模拟类似栈的数据结构的操作的一个类。 FreqStack 有两个函数: push(int x),将整数 x 推入栈中。 pop(),它移除并返回栈中出现最频繁的元素。 如果最频繁的元素不只一个,则移除并返回最接近栈顶的元素 阅读全文
posted @ 2021-09-10 12:45 Curryxin 阅读(21) 评论(0) 推荐(0) 编辑
Live2D