摘要:Golang开发 1.GO语言基础 [日常] 搭建golang开发环境 [日常] Go语言圣经前言 [日常] Go语言圣经-声明,变量,赋值,类型,包和文件习题 [日常] Go语言圣经--作用域,基础数据类型,整型 [日常] Go语言圣经--浮点数习题 [日常] Go语言圣经--复数,布尔值,字符串 阅读全文
posted @ 2020-12-17 11:29 陶士涵 阅读(32) 评论(0) 推荐(0) 编辑
摘要:在一些界面上 , 如果每个icon都去找图片还是相当麻烦的 , 直接使用css画出icon就方便的多了 , 下面两个是画的文件夹和话筒的icon 效果: 文件夹: .folderBtn { display: inline-block; background-color: transparent; o 阅读全文
posted @ 2021-01-26 11:34 陶士涵 阅读(4) 评论(0) 推荐(0) 编辑
摘要:之前开发的GO语言客服系统已经360+ star了 , 撒花 又开发出了多商户版本 , 继续撒花 测试地址: http://gofly2.sopans.com/index_cn 【Feature:新增的特性(从无到有)】 权限划分超管/商户/坐席 商户可新增坐席,超管可新增商户 后台设置页权限划分 阅读全文
posted @ 2021-01-22 16:30 陶士涵 阅读(8) 评论(0) 推荐(0) 编辑
摘要:比如回车事件是: @keyup.enter.native="" 比如按下事件 @keydown.native="" 当下面不管用的时候加个 .native @keydown(键盘按下时触发),@keypress(键盘按住时触发),@keyup(键盘弹起) 获取按键的键码 e.keyCode @key 阅读全文
posted @ 2021-01-18 19:00 陶士涵 阅读(28) 评论(0) 推荐(0) 编辑
摘要:注意问题 , 当对interface变量进行判断是否为nil时 , 只有当动态类型和动态值都是nil , 这个变量才是nil 下面这种情况不是nil func f(out io.Writer) { // ...do something... if out != nil { out.Write([]b 阅读全文
posted @ 2021-01-15 17:39 陶士涵 阅读(25) 评论(0) 推荐(0) 编辑
摘要:当写项目的过程中 , 有时候进行逻辑判断 , 如果没注意对两个interface类型的变量进行比较 , 会造成混乱问题 接口比较的时候 , 只有当这两个变量的动态类型 , 动态值都相等的时候 , 才是相等的 一个nil的interface类型 , 是包含下面俩的 , 动态类型和动态值 使用fmt.P 阅读全文
posted @ 2021-01-15 17:27 陶士涵 阅读(54) 评论(0) 推荐(0) 编辑
摘要:在chrome 80版本以上, 会默认开启same-site策略 samesite有以下几个值 Lax : 对同源、顶级域的请求才可以携带cookie (等价于same-site)Strict: 对同源请求才可以使携带cookie (等价于same-origin)None: 对于cookie的使用无 阅读全文
posted @ 2021-01-14 16:02 陶士涵 阅读(59) 评论(0) 推荐(0) 编辑
摘要:摘自labuladong算法小抄,使用go语言重新描述 之前的文章「递归反转链表的一部分」讲了如何递归地反转一部分链表,有读者就问如何迭代地反转链表,这篇文章解决的问题也需要反转链表的函数,我们不妨就用迭代方式来解决。 本文要解决「K 个一组反转链表」,不难理解: 这个问题经常在面经中看到,而且 L 阅读全文
posted @ 2021-01-12 23:36 陶士涵 阅读(32) 评论(0) 推荐(0) 编辑
摘要:转载自labuladong的算法小抄,go语言描述 反转单链表的迭代实现不是一个困难的事情,但是递归实现就有点难度了,如果再加一点难度,让你仅仅反转单链表中的一部分,你是否能够递归实现呢? 本文就来由浅入深,step by step 地解决这个问题。如果你还不会递归地反转单链表也没关系,本文会从递归 阅读全文
posted @ 2021-01-11 22:37 陶士涵 阅读(11) 评论(0) 推荐(0) 编辑
摘要:摘自廖雪峰网站 JavaScript的函数定义有个特点,它会先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部: 'use strict'; function foo() { var x = 'Hello, ' + y; console.log(x); var y = 'Bob'; } fo 阅读全文
posted @ 2021-01-11 15:05 陶士涵 阅读(14) 评论(0) 推荐(0) 编辑
摘要:本文转自labuladong的算法小抄 , 代码部分我使用go重新描述 先给大家讲个笑话乐呵一下: 有一天阿东到图书馆借了 N 本书,出图书馆的时候,警报响了,于是保安把阿东拦下,要检查一下哪本书没有登记出借。阿东正准备把每一本书在报警器下过一下,以找出引发警报的书,但是保安露出不屑的眼神:你连二分 阅读全文
posted @ 2021-01-10 15:13 陶士涵 阅读(30) 评论(0) 推荐(0) 编辑
摘要:ie下audio不支持一些媒体类型 , 所以需要进行兼容处理 这里可以用js进行判断 , 并加载不同的资源文件 , 这样就兼容了ie if (b.canPlayType('audio/ogg; codecs="vorbis"')) { }else{ ie下加载不同的资源文件 } <audio id= 阅读全文
posted @ 2021-01-08 15:21 陶士涵 阅读(22) 评论(0) 推荐(0) 编辑
摘要:在使用elemetui的时候 , 在ie11下面会遇到这个报错 不支持incudes属性和方法 数组.incudes("元素") 是检测数组中是否包含某元素 支持的版本是 可以替换为 数组.indexOf("元素") > 0 阅读全文
posted @ 2021-01-08 15:12 陶士涵 阅读(17) 评论(0) 推荐(0) 编辑
摘要:1.有主键如果设置了主键,并且一般会把主键设置成自增。我们知道,Mysql里int类型是4个字节,如果有符号位的话就是[-2^31,2^31-1],无符号位的话最大值就是2^32-1,也就是4294967295。 如果超过上限就会看到错误提示:1062 - Duplicate entry '2147 阅读全文
posted @ 2021-01-08 11:31 陶士涵 阅读(52) 评论(0) 推荐(0) 编辑
摘要:平面设计,ui设计,网页设计,名片、包装、彩页、海报等印刷 联系电话166 5226 8952(微信) 阅读全文
posted @ 2021-01-07 13:06 陶士涵 阅读(40) 评论(0) 推荐(0) 编辑
摘要:大小端模式 多字节数据在内存里占用连续的内存空间 大端模式:就是我们平常看到的右到左读的形式,左边是高地址位,右边是低地址位 小端模式:和上面反过来,便于机器处理 边界对齐 内存按照字节编址 访问内存一次访问一个字,32位,4个字节 边界对齐就是,一个字存数据的时候,如果没有占满四个字节,剩余的字节 阅读全文
posted @ 2021-01-06 22:23 陶士涵 阅读(13) 评论(0) 推荐(0) 编辑
摘要:有符号数转无符号数 不改变数值内容,改变解释方式,一般是负数时会出问题,因为符号位是1,转成无符号位时会被当成数据内容 short x=-1 转成 unsigned short y=(unsigned short)x 长整数转短整数 高位截断,低位保留,会改变符号位 int a=1234 转成 sh 阅读全文
posted @ 2021-01-06 22:03 陶士涵 阅读(13) 评论(0) 推荐(0) 编辑
摘要:算数移位:符号位不变,仅对数值位进行移位 右移高位补0,低位舍弃,若舍弃的位=0,则相当于除以2;若舍弃的位不等于0,则会丢失精度 左移低位补0,高位舍弃,若舍弃的位=0,则相当于乘以2;若舍弃的位不等于0,则会出现严重误差 负数反码移位:高位和低位都补1负数的补码移位:右移->高位补1 ; 左移- 阅读全文
posted @ 2021-01-06 13:43 陶士涵 阅读(18) 评论(0) 推荐(0) 编辑
摘要:要把多个字符串连接起来,可以用+号连接: var name = '小明';var age = 20;var message = '你好, ' + name + ', 你今年' + age + '岁了!';alert(message); 如果有很多变量需要连接,用+号就比较麻烦。ES6新增了一种模板字 阅读全文
posted @ 2021-01-06 11:21 陶士涵 阅读(23) 评论(0) 推荐(0) 编辑
摘要:strict模式JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量: i = 10; // i现在是全局变量在同一个页面的不同的JavaScript文件中,如果都不用 阅读全文
posted @ 2021-01-06 11:14 陶士涵 阅读(10) 评论(0) 推荐(0) 编辑
摘要:原码:用尾数表示真值的绝对值反码:若符号位为0,反码和原码一样;若符号位为1,则数值位全部取反补码:正数的补码=原码;负数的补码=反码末位+1(要考虑进位)移码:补码的基础上,符号位取反(只能表示整数) 用加法运算来代替减法运算例如:14-14 这个运算,如果在8bit的基础上,可以看成计算机天然的 阅读全文
posted @ 2021-01-05 23:23 陶士涵 阅读(16) 评论(0) 推荐(0) 编辑
摘要:定点数和浮点数定点数:小数点固定的数 浮点数:小数点不固定的数 无符号数:整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值n位无符号数表示范围是:0~ 2^n -1 因为8个二进制位全为1的时候就是 ,第九位数为1的时候-1 有符号数如果机器字长是8位,第八位是符号位,其他七位是尾 阅读全文
posted @ 2021-01-04 19:15 陶士涵 阅读(15) 评论(0) 推荐(0) 编辑
摘要:babel是将 ES2015+ 语法的 JavaScript 代码编译为能在当前浏览器上工作的代码 安装包 npm install --save-dev @babel/core @babel/cli @babel/preset-env npm install --save @babel/polyfi 阅读全文
posted @ 2021-01-04 17:24 陶士涵 阅读(30) 评论(0) 推荐(0) 编辑
摘要:一次磁盘读写操作所需要的时间寻找时间(寻道时间):磁头臂前后移动寻找磁道所需的时间 (系统软件可算法优化)延迟时间:磁头旋转定位到目标扇区所需要的时间 (固定)传输时间:读写数据到扇区所需的时间 (固定) 先来先服务算法:请求的磁道集中的话,性能好.大量进程的时候会性能差 最短寻找时间优先保证每次寻 阅读全文
posted @ 2021-01-04 11:14 陶士涵 阅读(26) 评论(0) 推荐(0) 编辑
摘要:磁盘的结构 磁盘/磁道/扇区的概念盘片里面会一圈圈的划分出很多的磁道,每条磁道会划分出一段一段的扇区,每个扇区存储的数据相同(1KB) 如何在磁盘中读写数据磁盘转动,目标扇区从磁头下面划过就能读写扇区了 盘面/柱面的概念会有很多层的盘面,会有编号,每个盘面对应一个磁头,都在一个磁臂上,会共进退立体的 阅读全文
posted @ 2021-01-04 10:53 陶士涵 阅读(23) 评论(0) 推荐(0) 编辑
摘要:用页面置换算法决定应该换出哪个页面 五种页面置换算法:1)最佳置换算法(OPT)2)先进先出算法(FIFO)3)最近最少使用算法(LRU)4)时钟置换算法(CLOCK)5)改进型的时钟置换算法 最佳置换算法(OPT):每次选择淘汰的页面将是以后永不使用,最长时间内不再被访问的页面,无法实现 先进先出 阅读全文
posted @ 2021-01-03 16:44 陶士涵 阅读(27) 评论(0) 推荐(0) 编辑
摘要:基本地址转换机构:一组硬件机构,将逻辑地址转换成物理地址,需要两次访存,先查页表再查内存具有快表的地址转换机构1)局部性原理2)什么是快表3)引入快表后,地址转换只需要一次访存 局部性原理时间局部性:程序中执行了某条指令,不久后这条指令可能会再次执行;访问了某个变量,不久后可能会再次访问空间局部性: 阅读全文
posted @ 2020-12-31 10:57 陶士涵 阅读(34) 评论(0) 推荐(0) 编辑
摘要:基本分页存储方式 1)把内存分为一个个小分区,再按照分区大小把进程拆分成一个个的小部分,比如每个分区4kb,每个分区就是一个页框/页帧/页存块/物理块,页框号从0开始 2)将进程也分成和页框大小相等的一个个区域,称为页/页面,每个页面也有个编号,页号也是从0开始的 3)将进程分页然后离散的分配到内存 阅读全文
posted @ 2020-12-30 22:33 陶士涵 阅读(29) 评论(0) 推荐(0) 编辑
摘要:首次适应算法每次从低地址开始查找,找到第一个能满足大小的空闲分区,顺序查找空闲分区链或者空闲分区表 最佳适应算法(最小分配)按照容量递增从小到大的顺序查找,每次分配内存按前面顺序查找,找到第一个合适的,会留下很多外部碎片 最坏适应算法(最大分配)按容量从大到小顺序查找 邻近适应算法每次分配内存时,从 阅读全文
posted @ 2020-12-30 19:27 陶士涵 阅读(65) 评论(0) 推荐(0) 编辑
摘要:连续分配:系统为程序分配的是连续的内存空间 单一连续分配:内存分为系统区和用户区,只有一道用户程序占据整个用户区,无外部碎片,有内部碎片,内存利用率低固定分区分配:分为系统区和用户区,用户区划分多个分区,每个分区一个程序,无外部碎片,有内部碎片,利用率低 动态分区分配:可变分区分配,根据进程的大小动 阅读全文
posted @ 2020-12-30 19:11 陶士涵 阅读(28) 评论(0) 推荐(0) 编辑
摘要:内存空间的扩充:覆盖技术,交换技术,虚拟存储技术 覆盖技术-解决程序大小超过物理内存总和问题(现在基本不用了),增加了编程负担 思想:1)将程序分为多个段,常用的段常驻内存,不常用的段需要时调入内存2)内存分为一个"固定区",若干个"覆盖区"3)需要常驻的放在"固定区",调入后不在调出(除非运行结束 阅读全文
posted @ 2020-12-30 17:55 陶士涵 阅读(23) 评论(0) 推荐(0) 编辑
摘要:什么是内存 1.存储单元 用于存放数据的硬件,程序执行前先放到内存中才能被CPU处理2.内存地址 给内存存储单元编地址,从0开始每个地址对应一个存储单元,可以按字节编址,也可以按字长编址,一个存储单元一个字节或字长 内存运行的基本原理 1.指令的工作原理 内存有数据段和程序段,指令存放在程序段,变量 阅读全文
posted @ 2020-12-30 17:18 陶士涵 阅读(26) 评论(0) 推荐(0) 编辑
摘要:调度的三个层次高级调度(作业调度):操作系统调入作业,把作业从外存调入内存,建立相应的PCB,作业运行结束才调出,只发生一次中级调度(内存调度):引入虚拟存储技术,将暂时不能运行的进程调至外存等待,等时间再调入内存,进程状态为挂起状态,PCB还是常驻内存可能会发生多次低级调度(进程调度):在就绪队列 阅读全文
posted @ 2020-12-30 14:10 陶士涵 阅读(38) 评论(0) 推荐(0) 编辑
摘要:线程的概念和多线程模型 线程是处理机调度的单位,进程是资源分配单位 多CPU,各个线程占用不同CPU 每个线程都有一个线程ID,线程控制块TCB 线程也有就绪阻塞运行状态 同一进程不同线程间共享资源 线程几乎不拥有系统资源 用户级线程:是应用程序通过线程库实现(用户视角)内核级线程:操作系统内核完成 阅读全文
posted @ 2020-12-30 13:39 陶士涵 阅读(19) 评论(0) 推荐(0) 编辑
摘要:进程通信:进程之间的信息交换进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立 共享存储 1)两个进程对共享空间的访问必须是互斥的 2)基于数据结构的共享,慢是低级通信 3)基于存储区的共享,高级通信,在内存中画出一块共享存储区,数据形式存储位置都由进程控制 消息传递 阅读全文
posted @ 2020-12-30 12:06 陶士涵 阅读(27) 评论(0) 推荐(0) 编辑
摘要:进程控制:创建新的进程,撤销已有进程,实现进程状态转换创建完成,提交 >就绪队列 >调度,切换 >CPU >完成/异常结束 用原语实现进程控制,原语的特点是执行期间不允许中断,只能一气呵成,这种不可中断操作就是原子操作原语采用"关中断指令"和"开中断指令" 1.进程的创建: 从无-->创建态-->就 阅读全文
posted @ 2020-12-30 11:53 陶士涵 阅读(25) 评论(0) 推荐(0) 编辑
摘要:进程的三种基本状态:运行态-占用cpu,并在cpu运行,单核cpu最多只能有一个进程处于运行态就绪态-具备运行条件,但是没有空闲cpu,暂时不能运行,万事具备只差CPU阻塞态-等待某事件 另外两种状态创建态-分配资源,初始化PCB终止态-回收资源,撤销PCB 状态转换就绪态-->运行态 [进程被调度 阅读全文
posted @ 2020-12-30 11:20 陶士涵 阅读(23) 评论(0) 推荐(0) 编辑
摘要:程序段,数据段,PCB组成了进程实体,创建进程就是创建进程中的PCB,撤销进程实体中的PCB PCB是进程的唯一标识 1.进程描述信息 2.进程控制和管理信息 3.资源分配清单 4.处理机相关信息 进程的组织(执行,就绪,阻塞状态): 链接方式,按照进程状态分为多个队列,持有指向各个队列的指针 索引 阅读全文
posted @ 2020-12-29 23:10 陶士涵 阅读(20) 评论(0) 推荐(0) 编辑
摘要:1.当中断发生时,cpu立即进入核心态 2.当中断发生后,当前进程进入暂停状态,操作系统内核对中断进行处理 3.对于不同的中断信号,会进行不同的处理 有了中断,才能实现程序的并发运行,cpu从用户态转入核心态,使用特权指令进行操作系统的管理工作(进程切换,分配io设备) 中断分为内中断和外中断,内中 阅读全文
posted @ 2020-12-29 22:33 陶士涵 阅读(29) 评论(0) 推荐(0) 编辑
摘要:指令:cpu能识别执行的最基本命令 指令分为特权指令和非特权指令,特权指令如内存清零指令,非特权指令如普通的加减乘除指令 内核程序在核心态执行特权指令 操作系统内核: 1.时钟管理-实现计时功能 2.中断处理-负责实现中断机制 3.原语 1)位于操作系统底层,最接近硬件的程序 2)运行具有原子性 3 阅读全文
posted @ 2020-12-29 22:13 陶士涵 阅读(23) 评论(0) 推荐(0) 编辑
摘要:并发性 1.并发:两个或多个事件交替执行 2.操作系统的并发性:同时存在着多个运行着的程序,一个单核cpu同一时刻只能运行一个程序,操作系统负责协调 多个程序交替执行,宏观上看起来是同时进行的 3.如果有多个核心的cpu,那么程序是可以并行同时执行的 共享性 两种资源共享方式:互斥共享和同时共享 互 阅读全文
posted @ 2020-12-29 21:22 陶士涵 阅读(49) 评论(0) 推荐(0) 编辑