自定义博客皮肤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)
  • 收藏
  • 关注

原创 web页面请求后发生的事

1.将www.google.com 输入主机web浏览器,操作系统生成一个DNS查询报文,该报文具有www.google.com以及53端口号,目的IP为DNS服务器地址68.87.71.226, 源IP为主机地址86.85.2.101。2.主机将DNS请求报文放入以太网帧,该帧将发送到主机所在网络的网关路由器中,使用ARP获取网关路由器的MAC作为下一跳MAC地址。于是,主机生成一个具有目的IP地址68.85.2.1(默认网关)的ARP查询报文,将该报文放置在目的地址为广播FF:FF:FF:...

2021-08-17 12:16:53 230

原创 《每日一记》客户端篇:view点击事件

按照时间顺序,事件的生命周期是这样的:  事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view、寻找最合适的view的底层实现、拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应)其中重点和难点是:  1.如何寻找最合适的view  2.寻找最合适的view的底层实现(hitTest:withEvent:底层实现)(一)iOS中的事件iOS中的事件可以分为3大类型:触摸事件 加速计事件 远程控制事件 这里我们只

2021-03-13 21:26:47 407

原创 《每日一记》网络篇:Get/Post区别

HTTP最早被用来做浏览器与服务器之间交互HTML和表单的通讯协议;后来又被被广泛的扩充到接口格式的定义上。所以在讨论GET和POST区别的时候,需要现确定下到底是浏览器使用的GET/POST还是用HTTP作为接口传输协议的场景。浏览器的GET和POST这里特指浏览器中非Ajax的HTTP请求,即从HTML和浏览器诞生就一直使用的HTTP协议中的GET/POST。浏览器用GET请求来获取一个html页面/图片/css/js等资源;用POST来提交一个<form>表单,并得到一个结果...

2021-03-13 21:09:04 349 1

原创 《每日一记》网络篇:cookie/seesion/token

一、实现状态保持的原理在户登录一个网站时常常会涉及到用户登录的状态保持,来使得用户获得更好的体验。那么cookie和session就是为了实现状态保持的。整个实现状态保持的流程是这样的:1.用户在登录时向后端服务器发送post请求,服务器接受请求,检验请求参数无误后,处理登录业务逻辑,返回响应。此时服务器端生成对应的cookie字符串,响应到前端浏览器,2.浏览器本地保存cookie值;3.在登录后用户再向服务器发送请求,则带者浏览器本地保存的cookie值,发送给服务器;...

2021-03-13 21:07:39 146

原创 《每日一记》数据结构:哈希表

原理:https://blog.csdn.net/yangzishiw/article/details/44060011扩容:https://zhuanlan.zhihu.com/p/114363420

2021-03-13 20:49:55 110

原创 《每日一记》网络篇:HTTS

转载自:https://blog.csdn.net/wangtaomtk/article/details/80917081

2021-03-13 20:05:57 191

原创 《每日一记》系统篇:死锁

什么是死锁?所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 因此我们举个例子来描述,如果此时有一个线程A,按照先锁a再获得锁b的的顺序获得锁,而在此同时又有另外一个线程B,按照先锁b再锁a的顺序获得锁。如下图所示:产生死锁的原因?可归结为如下两点:a. 竞争资源系统中的资源可以分为两类:可剥夺资源,是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺,CPU和主存均属于可剥夺性资源;另一类资源

2021-03-12 17:36:11 227

原创 《每日一记》网络篇: 常见三种加密(MD5、非对称加密,对称加密、http的SSL加密)

任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为重要。在app应用开发中,我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户一个安全保障。一、哈希HASH1.MD5加密MD5加密的特点:不可逆运算对不同的数据加密的结果是定长的32位字符(不管文件多大都一样)对相同的数据加密,得到的结果是一样的(也就是复制)。抗修改性 : 信息“指纹”,对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别.弱抗碰撞 : .

2021-03-12 17:21:23 713

原创 《每日一记》设计模式篇:MVC & MVVM

MVCM:Model,数据模型,比如我们人类有一双手,一双眼睛,一个脑袋,没有尾巴,这就是模型,Model定义了这个模块的数据模型。在代码中体现为数据管理者,Model负责对数据进行获取及存放。数据不可能凭空生成的,要么是从服务器上面获取到的数据,要么是本地数据库中的数据,也有可能是用户在UI上填写的表单即将上传到服务器上面存放,所以需要有数据来源。既然Model是数据管理者,则自然由它来负责获取数据。Controller不需要关心Model是如何拿到数据的,只管调用就行了。数据存放的地方是在Model

2021-03-08 23:40:07 153

原创 《每日一记》基础篇:设计模式与设计原则

一、设计原则1.开闭原则。一个软件实体,如类,模块和函数应该对外扩展开发,对内修改关闭。解读:用抽象构建框架,用实现扩展细节。不以改动原有类的方式来实现新需求,而是应该以实现事先抽象出来的接口(或具体类继承抽象类)的方式来实现。优点:开闭原则的优点在于可以在不改动原有代码的前提下给程序扩展功能。增加了程序的可扩展性,同时也降低了程序的维护成本。2.单一职责原则。一个类只允许有一个职责,即只有一个导致该类变更的原因。解读:类职责的变化往往就是导致类变化的原因:也就是说如果一个类具有

2021-03-04 22:36:06 187 1

原创 《每日一记》系统篇:进程与线程

什么是进程?进程(Process)是程序执行时的一个实例,是系统进行资源分配的基本单位。所有与该进程有关的资源,都被记录在进程控制块(PCB)中。以表示该进程拥有这些资源或正在使用它们。另外,进程也是抢占处理机的调度单位,它拥有一个完整的虚拟地址空间。当进程发生调度时,不同的进程拥有不同的虚拟地址空间,而同一进程内的不同线程共享同一地址空间。进程与程序并不是一个概念,进程是动态的(进程是担当分配系统资源(CPU时间,内存)的实体,是具有动态特性的),而程序是一个静态的资源。进程:通过程序运行.

2021-03-01 23:51:18 294

原创 《每日一记 》网络篇-ARP协议与IP地址&MAC地址

一、ARP/RARP协议1、地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报

2021-02-28 18:23:57 1383

原创 计算机网络--bilibil

https://www.bilibili.com/video/BV1dE411F7vm?p=15&t=512一、计算机网络概述 1.什么是计算机网络  计算机网络主要由一些通用的、可编程的硬件互连而成,通过这些硬件,可以传送不同类型的数据,并且可以支持广泛和日益增长的应用。 2.计算机网络的分类  按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN)  按照网络使用者:公用网络、专用网络 3.计算机网络的发展历史  互联网的发展历史:   第一阶段:单个网络A

2021-01-14 13:40:48 391

原创 JAVA后台开发之JVM

1.什么是 JVM?它有什么作用?答:JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,顾名思义它是一个虚拟计算机,也是 Java 程序能够实现跨平台的基础。它的作用是加载 Java 程序,把字节码翻译成机器码再交由 CPU 执行的一个虚拟计算器。2.JVM 主要组成部分有哪些?答:JVM 主要组成部分如下:类加载器(ClassLoader) 运行时数据区(Runtime Data Area) 执行引擎(Execution Engine) 本地库接口(Na

2021-01-13 14:11:51 98

原创 操作系统--知识点总结

一、 操作系统概述 1. 操作系统的演进  无操作系统:人工操作,用户独占,CPU等待人工操作,资源利用率很低。  批处理系统:批量输入任务,无需等待人工操作,资源利用率提升,提出多道程序设计。  分时系统:人-机交互,多用户共享,资源利用率提升,及时调试程序。  关于多道程序设计:是指在计算机内存中同时存放多个程序,多道程序在计算机的管理程序之下相互穿插运行。 2. 操作系统的定义与目标  定义:管理硬件,提供用户交互的软件系统。  目标:方便性,有效性(提高系统资源的利用率、提高...

2021-01-13 14:09:58 458

原创 五大算法总结

1) 贪婪算法贪婪算法可以获取到问题的局部最优解,不一定能获取到全局最优解,同时获取最优解的好坏要看贪婪策略的选择。特点就是简单,能获取到局部最优解。就像打狗棍法,同一套棍法,洪七公和鲁有脚的水平就差太多了,因此同样是贪婪算法,不同的贪婪策略会导致得到差异非常大的结果。具体的详细解析请参见下面的文章:http://blog.csdn.net/changyuanchn/article/details/514172112) 动态规划算法当最优化问题具有重复子问题和最优子结构的时候,就是动态规划..

2021-01-06 13:05:59 158

原创 计算机网络--知识点总结

计算机网络、计算机操作系统这两个“兄弟”是所有开发岗位都需要“结拜”的,不管你是 Java、C++还是测试。对于后端开发的童鞋来说,计算机网络的重要性不亚于语言基础,毕竟平时开发经常会和网络打交道,比如:抓个包等等。所以对这一块知识点的准备还是要抱着敬畏之心,不要放过任何一个漏网之题。下面分享下我的学习过程:1. 看书:对于计算机比较基础的模块,我都是比较推荐找一本经典的书籍来好好学习下,不可以只看面经就去面试了。我一共看了两本书:汤小丹的《计算机操作系统》和《图解HTTP》。《计算机操作系统》是教科书

2021-01-05 20:51:40 759

原创 数组相关算法题汇总

在属于数组考点系列的题目中,划分为四个常考问题:子数组问题、矩阵问题、O(n)类型问题和思维转换类型问题。子数组问题:就是给定一个数组,围绕该数组的子数组列出诸多难题,等待我们来解答。 矩阵问题:给定一个矩阵(或者称为二维数组),围绕该矩阵列出不同方式遍历矩阵中元素等难题,等待我们来解答。 O(n)类型问题:O(n)是指时间复杂度为O(n),给定的题目题意一般很容易理解,其一般解法(俗称暴力解法,时间复杂度一般为O(n^2),甚至更高)也很简单,但是题目要求你的解法时间复杂度为O(n)。看到这些题目

2021-01-05 14:52:37 1489

原创 LeetCode -- 75.颜色分类

问题描述:给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]思路分析:这是一道“荷兰国旗”思想的典型问题,更详细的可以参考第一篇文章“快速排序”代码解题:class Solution { p...

2020-09-29 13:59:25 122

原创 链表常考算法题

1.链表的倒数第K个结点问题描述:输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个结点是值为4的结点,需要保证时间复杂度。算法思路:设置两个指针p1,p2,从头到尾开始出发,一个指针先出发k个节点,然后第二个指针再进行出发,当第一个指针到达链表的节点的时候,则第二个指针表示的位置就是链表的倒数第k个节点的位置。代码如下:

2020-09-25 18:23:21 670

原创 LeetCode刷题--5. 最长回文子串

题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"...

2020-09-22 20:38:32 173

原创 LeetCode刷题--225用队列实现栈&232用栈实现队列

一.用队列实现栈1.题目描述使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是push to back, peek/pop from front, size, 和is empty这些操作是合法的。你所使用的语言也许不支持队列。你可以使用 list 或者 deque(双端队列)来模拟一个队列, 只要是标准的队列操作即可。你可...

2020-09-21 09:48:24 122

原创 机器学习模型——隐形马尔科夫

隐形马尔科夫模型可用于数据标注问题,描述由隐藏的马尔科夫链生成观测序列的过程,属于生成模型。基本概念隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测从而产生观测随机是序列的过程。隐藏的马尔科夫链随机生成的状态的序列,称为状态序列;每个状态生成一个观测,从而由此产生的观测的随机序列,称为观测序列;序列的每一个位...

2020-01-05 13:45:54 262

原创 LeetCode刷题——3.无重复字符的最长子串

问题描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为...

2019-12-31 15:57:24 94

原创 LeetCode刷题——2.两数之和

问题描述:给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> ...

2019-12-31 15:29:20 143

原创 LeetCode刷题——1.两数之和

从今天开始正式整理自己的博客文档,算作正式踏入软件行业的里程碑。每天坚持写3道算法题,并坚持更新学到的各类模型,持之以恒,在毕业之前定当有所收获。主要也是为了今后参加各种面试招聘,总结经验。问题描述:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组...

2019-12-31 14:57:35 129

原创 快速排序(经典&优化)

标题话不多说,直接上代码经典快速排序Class solution: def QuickSort(array, start, end): if start < end: index = Partition(array, start, end) QuickSort(array, start, index-1) QuickSort(...

2019-12-31 14:10:58 321

空空如也

空空如也

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

TA关注的人

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