笔记
文章平均质量分 79
ALEX_CYL学习记录
这个作者很懒,什么都没留下…
展开
-
shell
1.shell 概述shell本质上是一个命令解释器,它接收应用程序/用户命令,然后调用操作系统内核。 查看shell的解释器类型echo $SHELL我的ubuntu的解释类型为bash类但sh是链接到dash类型2.shell 脚本入门1创建.sh文件touch hello.sh2.编写代码:vim hello.sh基于bash解释器的命令3编译运行:方法一:bash 文件路径/文件名开辟子shell,在子shell里解析语句,主shell不受影响方法二:省略bash,文原创 2022-05-19 16:26:24 · 253 阅读 · 0 评论 -
ubuntu操作系统firefox浏览器安装flashplayer后仍无法播放的问题解决
更新源 sudo apt-get update 更新flashplayer sudo apt install flashplugin-installer 安装flahplyer sudo apt install browser-plugin-freshplayer-pepperflash 第三步骤至关重要,对于flashplayer的安装(系统可能会不询问直接安装,也可能不询问也不操作),针对flashplayer更新后,浏览器仍然无法播放视频的问题,操作步骤三即可解决。...原创 2022-05-10 10:48:23 · 657 阅读 · 0 评论 -
贪心和动态规划Golang
贪心和动态规划共同点:取最优子结构的解,一步一步解决问题不同点:贪心取局部最优作为全局最优,动态规划递推全局最优深层区别:贪心是动态规划在最优子结构评价纬度单一(评价条件单一时)的一种特殊解法动态规划:典型应用——背包问题贪心适用模板://评价最优条件是什么?//循环->未解决的问题&&还有解//从可能的解中取最优解//执行最优解//缩小问题规模->双指针,for循环、减去最优解…案例:1.按饥饿度分配饼干,使得不挨饿的人数最多。评价条件:原创 2022-04-22 16:25:51 · 544 阅读 · 0 评论 -
Golang-数据结构
数据结构1. 数据结构(算法)介绍数据结构是一门研究算法的学科,好的数据结构可以编写出更加漂亮、更加有效率的代码。算法是程序的灵魂。数据结构来源于现实问题。2. 稀疏数组sparse array问题引出:编写五子棋程序中,存在存盘退出和续上盘的功能。按照原始的二维数组方式记录,很多重复数据(0)没有意义,浪费空间和操作时间基本介绍:当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1.记录原数组几行几列及共性值,与有多少个不同的值原创 2022-04-11 09:48:21 · 1369 阅读 · 0 评论 -
海量用户即时通讯系统
3.海量用户即时通讯系统3.1项目开发流程需求分析——>设计阶段——>编码实现——>测试阶段——>实施需求分析:用户注册用户登录显示在线用户列表群聊(广播)点对点聊天离线留言3.2界面设计3.3 项目开发前技术准备项目需要保存用户信息和消息数据,因此需要运用到数据库(Redis或MySQL)的知识,先了解在Golang中运用Redis。Redis 快速入门3.4 实现功能-显示客户端登录菜单代码演示:由于login.go文件依然打包在main原创 2022-03-28 19:29:07 · 1267 阅读 · 0 评论 -
Go-tcp编程和Redis
tcp编程1.网络编程基本介绍Golang的主要设计目标之一就是面向大规模后端服务程序,网络通信是服务端程序必不可少的也是至关重要的一部分。网络编程有两种:1)Tcp socket(tcp 套接字)编程(c/s结构),是网络编程的主流。之所以加Tcp socket编程,是因为底层是基于Tcp/ip协议的,例如:QQ聊天2)b/s结构的http编程,使用浏览器去访问服务器时,使用的就是http协议,而http底层依旧是用tcp socket实现的。例如:京东商城【属于go web开发范畴】1.1原创 2022-03-13 20:48:31 · 4817 阅读 · 0 评论 -
Go-反射
反射反射的最大用处用于写go框架1. 反射的使用场景1)json序列化和反序列化时,使用到的tag功能实质上就是使用到了反射。2)使用反射机制编写函数的适配器/桥连接2. 反射的基本介绍1)反射可以在运行时动态获取变量的各种信息,比如变量的类型(type),类别(kind)。基本类型变量的类型和类别是相同的。2)如果是结构体变量/实例,还可以获取到结构体本身的信息(包括其字段、方法)3)通过反射可以修改变量的值,可以调用关联的方法4)使用反射,需要import "reflect"包原创 2021-12-30 19:35:56 · 574 阅读 · 0 评论 -
Go-常量
常量1.常量的介绍1)常量使用const定义2)常量在定义时必须要初始化3)常量不能修改4)常量是不变的,故常量只能修饰基本数据类型(bool、整数、浮点数、字符串类型)5)使用语法const identifier [type] = value案例演示,代码如下:// 常量说明func main() { // 1.常量定义和修改使用const // 2. 常量在定义的时候必须初始化 const num int = 10 // 3.由于常量是不变的,故常量只能修饰基本数据类型 co原创 2021-12-24 21:34:14 · 195 阅读 · 0 评论 -
Go-goroutine(协程)和channel(管道)
Go-goroutine(协程)1.goroutine基本介绍1.1 进程和线程说明:1)进程就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位。2) 线程是进程的一个执行实例,是程序执行的最小单元,它是比进程更小的能独立运行的基本单位。3)一个进程可以创建和销毁多个线程,同一个进程中的多个线程可以并发执行。4)一个程序至少有一个进程,一个进程至少有一个线程1.2 并发和并行1)多线程程序(进程中含有多个执行实例/线程)在单核上运行,就是并发。2)多线程程序在多核上运原创 2021-12-17 10:37:51 · 1517 阅读 · 0 评论 -
Golang-协程、管道和文件操作综合练习题
协程、管道和文件操作综合练习题案例一:要求://1.启动一个协程,将1-2000的数字放到channel(numChan)中// 2.启动8个协程,从numChan取出数(n),并计算1+…+n的值,存放到resChan// 3.最后8个协程协同完成工作后,再遍历resChan,显示结果如res[1]=1…res[10]=55// 4.注意考虑resChan chan int是否合适?代码:package mainimport ( "fmt" "sync")// 要求:1.启动原创 2021-12-15 10:24:30 · 495 阅读 · 0 评论 -
Golang-单元测试
单元测试针对使用传统方式测试代码块的不足:1)测试代码块需要在main函数中去调用,需要修改main函数,若项目正在运行,就可能去停止项目,不方便2)不利于管理,当需要测试多个函数或多个模块时,都需要在main函数,不利于我们管理和清晰思路3)引出单元测试。testing测试框架,很好解决上述问题。1. 基本介绍Go语言自带有一个轻量级的测试框架testing和自带的 go test命令实现单元测试和性能测试。testing框架和其它语言中的测试框架类似,可以基于这个框架写针对相应函数的测试用例原创 2021-12-09 20:08:54 · 4818 阅读 · 2 评论 -
Golang文件操作续-json
josn1.JOSN基本介绍json(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写,经典的使用方式采取key-val形式来描述信息。JSON易于机器解析和生成,并有效地提升网络传输效率,通常程序在网络传输时会先将数据(结构体、map等)序列化为json字符串;接收方得到json字符串后,在反序列化恢复成原来的数据类型(结构体、map等)。这种方式已然成为各个语言的标准。json应用场景示意图2.json数据格式说明在JS语言中,一切变量/原创 2021-12-08 15:51:20 · 167 阅读 · 0 评论 -
Golang文件操作
文件操作文件的基本介绍文件是数据源(保存数据的地方)的一种,比如经常使用的Word文档、txt文件、Excel文件…都是文件。文件的主要主用就是保存数据,它既可以保存图片,也可以保存视频、音频等。(数据库本质上也是文件,一种特殊格式的文件 )输入流和输出流文件在程序中是以流的形式进行操作的。流:数据在数据源(文件)和程序(内存)之间经历的路径输出流:数据从程序(内存)到数据源(文件)的路径输入流:数据从数据源(文件)到程序(内存)的路径Golang提供的os包中定义了文件对象。原创 2021-12-07 20:30:22 · 1032 阅读 · 0 评论 -
Golang中键盘输入,提示显示多次的解决方法
解决一些不恰当操作导致的系统内部产生错误,导致代码运行有误的现象例如当使用键盘输入给一个int类型变量赋值时,错输成字符类型,会导致fmt.Scanln()在二次运行时,产生一个unexpected newline错误。案例演示:id := 0 for { _, err := fmt.Scanln(&id) if err == nil { break } else { fmt.Println(err) fmt.Println("指令输入错误,请输入正确的客户编号原创 2021-12-03 22:14:52 · 565 阅读 · 0 评论 -
Go面向对象编程的三大特性
Go面向对象编程的三大特性1.基本介绍Golang仍然有面向对象编程的继承,封装和多态的特性,只是实现的方式和其它OOP语言不一样。2.面向对象编程思想-抽象抽象:在定义一个结构体类型时,实际上就是把一类事物共有的属性(字段)和行为(方法)提取出来形成一个物理模型。案例演示:type Account struct { AccountNo string Pwd string Balance float64}//方法func (account *Account)原创 2021-12-01 19:52:35 · 199 阅读 · 0 评论 -
Golang
函数参数传递方式基本介绍函数传递方式有两类:值类型和引用类型。值类型参数默认就是值传递,引用类型参数默认为引用传递。两种传递方式1)值传递2)引用传递实际上不管是值传递还是引用传递,传递给函数的都是变量的副本,不同的是,值传递是值的拷贝,引用传递的是地址的拷贝。一般情况下,地址拷贝效率高,因为其数据量小,而值拷贝取决于拷贝的数据大小,数据越大,效率越低。值类型和引用类型1)值类型:基本数据类型(int float系列,bool string complex64/128等),数组和结构体2原创 2021-11-18 20:39:45 · 290 阅读 · 0 评论