自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

XOng

个人学习笔记

  • 博客(20)
  • 收藏
  • 关注

原创 计算机网络基础(1)概述

基本概念网络:指多个节点以及连接节点的链路。节点可以是计算机,集线器,交换机,路由器等。互联网:网络与网络之间通过路由器连接起来,即网络的网络因特网:世界上最大的互联网。三者之间的关系:网络把许多计算机连接在一起,互连网将许多网络连接在一起,因特网是世界上最大的互连网络。互联网发展历史互联网发展经过三个阶段:单网络ARANET,三级结构的因特网——主干网,地区网,校园网,以...

2020-04-18 03:43:08 497

原创 计算机组成原理-总线与输入输出设备

总线计算机里其实有很多不同的硬件设备,除了 CPU 和内存之外还有大量的输入输出设备。如果各个设备间的通信,都是互相之间单独进行的,假设有 N 个不同的设备各自单独连接,那么系统复杂度就会变成 N²。每一个设备或者功能电路模块,都要和其他 N−1 个设备去通信。为了简化系统的复杂度,我们就引入了总线,把这个 N² 的复杂度,变成一个 N 的复杂度。设计一个公用的线路。CPU 想要和什么...

2020-04-16 01:26:35 1900

原创 计算机组成原理-存储器

存储器的层次结构SRAM(Static Random-Access Memory,静态随机存取存储器)的芯片,断电会丢失数据,访问速度极快DRAM(Dynamic Random Access Memory,动态随机存取存储器)的芯片比起 SRAM 来说,它的密度更高,有更大的容量,而且它也比 SRAM 芯片便宜不少。但是访问速度比SRAM慢。众所周知,CPU的速度远远超于IO速度,...

2020-04-15 16:42:07 731

原创 计算机组成原理(4)静态链接与动态链接

如果说同一个cpu支持相同的计算机指令集,那么为什么同一个程序在windows下可以执行,在linux下却不可以呢?这是因为两个操作系统下可执行文件的格式不一样。Linux 下是 ELF 文件格式,而 Windows 的可执行文件格式是一种叫作 PE的文件格式。Linux 下的装载器只能解析 ELF 格式而不能解析 PE 格式。编译、链接和装载:拆解程序执行写好的 C 语言代码,可以通过...

2020-03-24 20:57:12 543

原创 计算机组成原理(3)程序栈

极客时间《计算机组成原理》的笔记为什么我们需要程序栈?简单调用了函数的c语言例子以及对应的汇编如下int static add(int a, int b){ 0: 55 push rbp 1: 48 89 e5 mov rbp,rsp 4: 89 7d fc ...

2020-03-24 19:46:06 1064 2

原创 计算机组成原理(2)程序如何被计算机理解

高级程序语言如何变成计算机理解的“0”和“1”针对极客时间里课程所做的笔记cpu与指令集如果我们从软件工程师的角度来讲,CPU 就是一个执行各种计算机指令的逻辑机器。这里的计算机指令,就好比一门 CPU 能够听得懂的语言,我们也可以把它叫作机器语言。不同的 CPU 能够听懂的语言不太一样。比如,个人电脑用的是 Intel 的 CPU,苹果手机用的是 ARM 的 CPU。这两者能听...

2020-03-23 04:57:20 694

原创 计算机组成原理(1)概述

冯诺依曼结构 值得注意的是我们目前所常用的电脑其实是属于微型计算机范畴,工作站是给更加专业的人使用,而迷你计算机则是我们常说的服务器。很久之前,程序员如果想改变计算机的功能,需要改变计算机的硬件电路才能够实现。而冯诺依曼体系的提出,将程序指令和数据一起存储的计算机设计概念结构,解决这个繁琐复杂的问题。当我们需要重新设计程序和改变功能的时候不需要重新设计电路。无论是个人电脑、服...

2020-03-22 17:20:21 304

原创 python进阶篇(一)

深拷贝与浅拷贝关于缓存重用规则,具体可看下表吗, 比如同一个字符串,如果之前创建过,那么后面所有索引都是指向同一个缓存然后关于深浅拷贝,共同点是都创建了一个新的对象,但是如果对元组只能采用copy.copy如下l1 = [1, 2, 3]l2 = l1[:]l1 == l2Truel1 is l2False# 对于元组不适用,索引指向的是同一块地址t1 = ...

2020-03-22 15:41:48 225

原创 python基础篇

列表与元组list是mutable, tuple是imutalbe,tuple初始化之后不能修改item,否则会报错,也不支持增加和删除操作。只能重新开辟一块空间来存储。造成这个原因在于它们的存储方式不一样。列表分配存储空间时,会额外分配更多的空间,这样的机制保证了其操作的高效性:增加 / 删除的时间复杂度均为 O(1)。但这个分配的空间肯定不能无限多,所以列表会额外存储已经使用的空间...

2020-03-07 05:59:42 91

转载 算法充电初级(三)数据结构-树、

二叉树二叉树的前序,中序,后序遍历(递归形式)二叉树前序遍历 leecode144# 递归实现,第一次到达目标节点就打印,就叫前序class Solution(object): def preorderTraversal(self, root): if not root: return root res = list...

2019-07-17 09:20:25 103

转载 算法充电初级(二)数据结构-堆、栈、数组、链表

栈stack是后进先出的结构,关键操作有三种:入栈push,出栈pop,和返回栈顶的元素peek# 实现大小固定的栈结构,关键点在于size变量,栈顶指针(py不是必要的),以及存储数据的列表(数组)# 栈顶指针指向当前栈顶元素class Stack: def __init__(self, size): self.data = [] self...

2019-07-17 09:20:06 135

转载 算法充电初级(一)排序

算法时间复杂度常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作时间复杂度为一个算法流程中,常数操作数量的指标。常用O(读作big O)来表示。具体来说,在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果记为f(N),那么时间复杂度为O(f(N))。例如 O( 1/100 * N² + 100 N + 5 ) ...

2019-07-17 09:19:52 208

转载 python设计模式(1)前言

参考https://yq.aliyun.com/topic/122设计模式含义: 设计模式是面对各种问题进行提炼和抽象而形成的解决方案。这些设计方案是前人不断试验,考虑了封装性、复用性、效率、可修改、可移植等各种因素的高度总结。它不限于一种特定的语言,它是一种解决问题的思想和方法。意义: 现在社会的发展可谓突飞猛进,过去常常被当作软件行业标杆的“软件工程”设计模型,...

2019-07-15 14:54:24 103

转载 python面试充电(4)单例涉及的魔法函数,垃圾回收机制

关于__init__和__new__:__new__ 负责对象的创建,而 __init__ 负责对象的初始化。而__new__ 是一个类方法,第一个参数是cls,代表这个类本身,利用这个类生产实例;__init__ 是实例方法,第一个参数是self,把实例本身初始化。关键点:1.__new__必须返回对象实例 2.__new__除了首参数cls外,必须包含__init__的参数 3....

2019-07-09 18:07:10 70

原创 python面试充电(3)面向对象、装饰器、包与模块

面向对象关于面向对象解读,参考知乎一个回答https://www.zhihu.com/question/20275578/answer/26577791python里面类其本质就是为了封装。把对象作为基本单元,把对象抽象成类,包括成员(即类的属性)和方法(即类的行为)。从而实现代码的封装和可复用性。封装起来的类,可以供外部调用(提供接口,比如某属性,某方法),无需关心细节。优先使用组合...

2019-05-11 15:07:00 144

原创 python面试充电(2)基础

python函数常考 Python传递参数实质上面那个问题第一种情况类似引用传递,第二种情况类似于值传递。但是python参数的传递不是值传递也不是引用传递,而是对象引用传递。一个很重要的概念,不可变对象:bool ,int ,float ,tuple , str ,frozenset ,可变对象 list ,set ,dict 。首先,python里面一切皆对象,函数参数传递其实是传...

2019-05-11 00:34:41 224

原创 python面试充电(1)基础

python的语言特性 python是动态语言。动态还是静态指的是编译期还是运行期确定的类型,动态语言在编译时变量的数据类型即可确定。多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求。编译期是指编译期把源代码翻译成计算机能够识别的代码。而运行期就是代码跑起来了,被装载到内存中去了。 python是强类型语言。强类型指的是不会发生隐...

2019-05-10 23:24:42 646 1

转载 Flask(六)flask-login插件

参考Flask-Login功能通过 user session,提供登录的常见任务,比如登入 (logging in)、登出 (logging out) 和当前用户 (current user)login_user() 函数:实现用户的登入,一般在登入的视图函数中调用 logout_user() 函数:实现登出功能 current_user 属性:获取当前用户,并且方便调取当前用户信...

2019-04-25 23:34:17 402

原创 Python@contextmanager

上下文管理器上下文管理器是实现了上下文管理协议的对象,其特有的语法是“with ...as”。主要用于保存和恢复各种全局状态,关闭文件等,并为try...except...finally提供了一个方便使用的封装。上下文管理协议具体来说就是在类里面实现以下两个方法:__enter__():从该方法进入运行时上下文,并返回当前对象或者与运行时上下文相关的其他对象。如果with语句有as关...

2019-04-19 09:01:53 2481

原创 python中的多线程

参考:进程与线程进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。单核cpu永远只能执行一个应用程序,但可以在不同的应用程序的进程中切换。具体到每个应用程序执行多少时间是由进程调度算法实现的,它决定了某个应用程序的进程什么时候被挂起切换到另一个应用程序,什么时候继续执行。进程在切...

2019-04-19 08:32:25 105

空空如也

空空如也

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

TA关注的人

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