自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(222)
  • 资源 (6)
  • 收藏
  • 关注

原创 Go连接数据库

官方:README案例:连接多个数据库dbconfig.go:数据库配置文件【因为同一个包下所有数据都是互通的,所以统一管理连接配置!注意:驱动名必须是相应的数据库】package dbimport ( "database/sql" _ "github.com/go-sql-driver/mysql" //注册驱动器)var err error// 主数据库配置(写数据库)var wdb *sql.DBconst ( wDriverName = "mysql" //驱动名必

2021-08-20 14:03:35 3041 2

原创 Context上下文

Context的产生原因控制 子goroutine 的结束!context.go结构注意点:Context是一个开放的接口!context.go源码中对Context接口有四种实现,但这四种实现不对外开放!但context.go源码对外提供六种方法对四种实现的创建!Context接口Deadline()【定时取消】:返回代表此上下文完成的工作应取消的时间。未设置截止日期时ok==false。Done()【是否被取消】:返回一个通道,当这个goroutine的context被can

2021-08-20 14:03:10 218

原创 Go语言包

Go语言包builtin:内置压缩包操作archive:存档tar、zip压缩文件的存取!compress:压缩bzip2,flate、gzip、lzw、zlib!container:容器封装的数据结构container/heap这只是个接口,需要那种堆就需要自己去实现!container/list双向链表!var l list.List 、ll := list.New()container/ring环形链表!var r ring.Ring 、rr := ring.Ne

2021-08-20 14:02:28 554

原创 Go语言杂记

杂记只有两种声明方式:普通声明、初始化声明!

2021-08-19 19:33:34 193

原创 读书笔记之Go反射及编译

反射类型对象(reflect.Type)

2021-08-18 10:43:28 87

原创 读书笔记之Go并发

协程goroutine使用:go 函数名( 参数列表 ),当然也可以调用匿名函数 或 闭包。main函数会默认开启一个主goroutine【main函数结束,所有的goroutine都会结束】goroutine是由Go语言在运行时调度(直接在用户态调度),而线程是由操作系统调度!(需要转换为核心态)goroutine可以并发的,可以抢占式任务处理!Go1.5后默认执行runtime.GOMAXPROCS(runtime.NumCPU()),根据CPU数控制Go进程中的线程数!goroutine

2021-08-17 21:54:02 124

原创 读书笔记之创建Go项目

文件默认保存路径:$GOPATH/src/ 下go envGOARCH:目标处理架构GOBIN:编译器、连接器安装位置GOOS:目标操作系统GOPATH:当前工作目录GOROOT:Go开发包安装目录项目工作目录(GOPATH)必须有:src:项目源码【只能在项目的src中编写文件!】bin:编译生成的二进制文件(go install)pkg:存储预编译的目标文件,以加快程序的后续编译速度。Go Modules 代替 GOPATHGOPATH问题:所有的源码必须在$GOPA

2021-08-17 10:31:11 317

原创 读书笔记之Go接口

Go语言接口Go语言中的接口是非侵入式的:让接口与实现者真正解耦!实现者只实现目标方法,而无需指明是哪个接口的方法!接口更无需知道哪些类型实现了接口!接口中只有方法声明,或嵌套的接口,不能有其他类型结构,常量等!接口声明类似,接口和结构体一样,都是一种类型:(type关键字)type 接口类型名 interface{ 方法名1(参数列表1) 返回值列表1 方法名2(参数列表2) 返回值列表2 ......}注意点:接口类型名常以er结尾,比如:Writer;接口名、方法名

2021-08-15 20:44:38 120

原创 读书笔记之Go结构体

注:结构体就是对象结构体是一种复合的基本类型,结构体和基本类型使用方式一模一样!初始化可以省略变量名,但必须全部、有序!关键字typetype 关键字用于自定义一种数据类型,eg:type myInt int /myInt就是自定义的一种数据类型type 类型民 struct{ /这个结构体也就是自定义的一种数据类型 字段名1 T1 字段名2 T2 ...}定义结构体type 类型民 struct{ 字段名1 T1 字段名2 T2 ...}举例:(字段tags可

2021-08-15 14:06:35 139

原创 读书笔记之Go函数

声明函数func 函数名(参数列表) (返回参数列表){ ...}参数列表: 相同类型相邻参数,可以只保留最后一个类型:func add(a,b int) int{ return a+b}返回参数列表: 【要么全使用非命名,要么全使用命名!】func RetVlaues() (int ,int){ return 1,2}或可以命名后直接在函数中使用:func RetVlaues() (a,b int){ a = 1 b = 2 return}调用函数返回值变量列

2021-08-13 10:18:00 89

原创 读书笔记之Go控制语句

都没有了小 ()!if没有了小 ()if 表达式{ ...}else if 表达式{ ...}else{ ...}if后可以创建变量,再判断:但这样err变量只在if范围内if err := Connect(); err != nil{ fmt.Println(err) return}for没有了(),但同样:语句可以不写,但 ; 要写!!! for 初始语句;条件表达式;结束语句{ ... }但死循环 和 只有条件表达式时 可以省略两个

2021-08-11 22:41:02 73

原创 读书笔记之Go指针

每个变量都在内存中有地址,指针的值就是地址!指针(%p)ptr := &xx := *ptr指针的类型上图 x 为 int 类型,则对应的指针 ptr 为 *int 类型。(诸如此类)理解指针的用途对指针的操作就是对原数据的操作注:函数的压栈都是将形参的值拷贝进自己的函数空间!!!func swap1(a, b int) { /拷贝进来的是变量值 a,b = b,a}func swap2(a, b *int) { /拷贝进来的是变量地址 *a,*b = *b,*a

2021-08-10 10:27:13 50

原创 读书笔记之Go字符串

同样,字符串是不可变的。字符串不可变有很多好处:天生线程安全,大家使用的都是只读对象,无须加锁;方便内存共享,而不必使用写时复制(Copy On Write)等技术;字符串hash值也只需要制作一份。常用内建函数len(s):s的长度返回切片、字符串、通道等长度但注意:返回的是字符串的字节数,字符数需要使用utf8.RuneCountInString(s)ss := "忍者无敌ab"fmt.Println(len(ss)) /14fmt.Println(utf8.RuneCoun

2021-08-09 19:12:48 115

原创 读书笔记之Go数据类型

%v:任意变量%T:变量类型基本数据类型布尔型bool :true /false 不能参与基本数据类型的运算和转换整型(%b %o %d %x)整型是按字节数分的:int8 int16 int32 int64对应的无符号整型:uint8 uint16 uint32 uint64实际int uint是不存在的,但int uint 会根据不同平台分别对应不同整型(32 / 64 位)注:整型 := 默认推导为 ===> int浮点型(%f %.2f)float32 、float6

2021-08-09 19:12:29 154

原创 读书笔记之Go变量与常量

声明变量只记:var 到处行数据类型 || 初始化:= 只能在函数内package main //程序入口包import ( "fmt" "net") /** 变量 */ /* 一、声明变量 未初始化会有默认值 */ // 1.标准格式: var 变量名 变量类型 var x int // 2.批量格式: (注意:var(...)是小括号!!!) var ( a int //默认:0 整数类型 b string

2021-08-08 21:17:56 70

原创 C语言速成

C语言生成可执行文件过程编译器gcc1、预处理过程(头文件的包涵,去掉注释,宏展开)—#include 预处理过程不做语法检查命令:gcc -E helloworld.c -o helloworld.i2、 编译:编译过程做语法检查 生成汇编语言命令:gcc -S helloworld.i -o helloworld.s3、汇编:将汇编语言生成对应的二进制数据命令:gcc -c helloworld.s -o helloworld.o4、链接:添加对应操作系统可以执行的链接,生成可执行文件.

2021-08-08 00:09:05 1467 1

原创 硬件基础知识

CPU指令架构X桌面端:x86(i386 32位)、x64(x86-64 AMD64 64位)移动端:ARM(32位)、ARM64(64位)南桥从外存中加载数据到内存,实际是由南桥做的,在加载过程中,数据、地址总线是与CPU交替使用的!南桥也是一种新芯片,DMAC是集成在南桥的一个控制器!DMAC以中断机制的方式告知CPU IO完成JVM内存GC机制三种清理算法:标记-清理标记-整理复制E区:Eden 伊甸园 创造新生命的地方S区:Survive 幸存注:每个对象都

2021-08-05 13:04:57 221

原创 协程与多路复用IO

协程

2021-08-04 23:49:32 844

原创 数据库分库分表

问题:1、表中数据太多会有什么影响?性能,索引查询性能降低,索引维护需要的系统资源增大。【推荐】单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表。说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。2、表中属性列太多会有什么影响?表太臃肿,难以维护,查到的数据并不会完全用到。进行垂直分表,超级表的常见技术:将基本信息作为主表,细节描述信息作为从表;主表的主键既是从表的外键也是从表的主键!垂直分表垂直分库水平分库水平分库库相同水

2021-07-30 23:26:13 560 3

原创 操作系统中其他

死锁死锁预防释放资源一次性发放资源顺序访问资源死锁避免对文件的基础操作都需要系统调用(特权指令)

2021-07-29 20:49:13 84

原创 操作系统的内存

指令运行原理CPU将取来的数据暂时放在寄存器中:虚拟内存程序员是面向虚拟内存进行编程的缺页属于内中断分页/分段内存管理逻辑地址对应物理地址分别是页表和段表进行记录的!!!(记录数据是否在内存中,在的话在内存中哪里?!)【其实数据查找会先去快表中查,没有的话才去页表中查。】快表:是一种特殊的高速缓冲存储器(Cache),内容是页表中的一部分或全部内容。(一般是在已经加载到内存中的数据!!!)分页管理: 在页式存储管理中,将程序的逻辑地址划分为固定大小的页(page),而物理内存划分为同

2021-07-29 19:30:02 327

原创 操作系统中的调度

操作系统中的调度中级调度当当前内存无法对某进程分配资源时,会将该进程的资源调到外存,让该进程处于挂起状态【当然,进程的PCB仍然会在内存中!】低级调度【进程调度】 ★★★★★总结高级调度:从后备队列中第一次调度作业分配PCB;作业完成后会被调出,并回收资源。进程调度【低级调度】注意:进程时间片用完,会被进程调度调出总结调度算法不只是进程调度【低级调度】,还适用作业调度【高级调度】。先来先服务(FCFS)短作业优先(SJF)高响应比优先(HRRN)时间片轮转

2021-07-29 11:52:53 178

原创 操作系统☞进程/线程

PCB:进程控制块TCB:线程控制块进程的组成多个进程在操作系统中的组织方式进程的特征进程的三种状态初创+终止状态进程控制进程的切换是原语实现【原子性执行(开中断、关中断实现的)】切换指令由操作系统内核程序控制的,属于特权指令(所以需要CPU转换为核心态后进行进程状态切换)进程通信共享存储管道通信消息传递线程内核级线程注意:内核级线程才是系统调度的基本单位...

2021-07-28 19:11:08 274

原创 操作系统概述

pc指针指向内存中一条代码,通过数据总线,最终将代码加载到cpu中进行运算。汇编语言汇编语言是一种低级计算机编程语言。C语言等都是高级语言。重排序:编译器和处理器为了提高程序的运行性能,对指令进行重新排序。C语言等高级语言会被重排序,而汇编语言不会。...

2021-07-28 13:55:14 312

原创 java系面试杂记

HashMap懒加载:第一次put时才回去创建链表转换为红黑树的条件:散列表数组长度达到64【如果没有达到,链表元素到达8时只会进行扩容】链表长度达到8Node节点中有个hash字段,这个hash字段值不是key的...

2021-07-17 10:58:18 173

原创 计算机网络面试

计算机网络层次结构(必考)OSI七层模型:TCP/IP四层模型:网络时延协议应用层常见协议传输层协议:TCP / UDP网络层协议:IP数据链路层协议:PPP:点到点协议ARP:地址解析协议(在七层模型中属于链路层 TCP/IP四层中属于网络层)数据报文格式有时间记一下TCP就行TCP报文格式首部固定20个字节,最大60个字节。UDP报文格式注意:伪首部计算完校验和后会被砍掉,不参与数据打包传输。首部8个字节IP报文格式首部固定20个字节,最大60个字节。

2021-07-16 23:19:48 2160 11

原创 Redis面试常考

什么是Redis高性能非关系型(NoSQL)的键值对数据库。优缺点优点读写性能优异, 因为数据是存在内存中的。支持数据持久化,支持AOF和RDB两种持久化方式。支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。(单线程+多路复用IO)数据结构丰富,除了支持string类型的value外还支持hash、set、zset、list等数据结构。支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。缺点数据库容量受到物理内存的限制,主要局限

2021-07-16 12:45:54 308 6

原创 操作系统面试知识点

CPU/寄存器/内存CPU读取数据过程(写过程类似)内核将想要访问的数据的虚拟地址交给寄存器的,内存管理单元(MMU)内存管理单元(MMU) 将 虚拟地址转换为真实的物理地址(内存中的地址)通过地址总线到达内存中的目标数据内存中的目标数据返回给数据总线最终数据到达寄存器的缓存中注意点:内核想要一个数据会交给MMU地址转换,然后先去缓存中找(缓存命中率就是指从缓存中找到数据的概率,一级缓存命中率最高,然后递减),找不到才会去内存中拿数据包括数据和指令(指令就是一行代码)缓存的数据是目

2021-07-14 17:05:02 665 1

原创 MySQL数据库面试

存储引擎有哪些那说一下InnoDB和MyISAMMySQL索引索引缺点额外磁盘空间维护索引的资源消耗索引的分类InnoDB不支持全文索引InnoDB:主键、普通、唯一、复合主键、唯一在建表时出现关键字primary key 和 unique 会自动创建唯一索引实际可以有多个null索引数据结构所有的数据都存储在主键B+树的叶子节点中 面试直接这样说就可以(实质存的是数据的物理地址)InnoDB优化 将B+树的根节点常驻内存(所以查询索引根节点 不用动用IO)将

2021-07-14 10:46:48 446 1

原创 常见重要算法

重要算法排序package review.sort;import java.util.Arrays;/** * @Author: xiang * @Date: 2021/7/5 14:20 */public class BaseSort { public static void main(String[] args) { int[] array = {4,3,5,8,1,5,6,10,14,3,21,100}; System.out.printl

2021-07-06 12:44:54 141

原创 复合数据类型

数组仔细品: (注意 长度可以推断 数据类型可必须表明)注意:只有第一层注意与Java的不同点,数组不是引用数据类型,是值类型。赋值直接是拷贝!

2021-06-08 00:28:37 111

原创 Go运算符

2021-06-07 23:56:04 46

原创 Go流程控制

if else特殊写法:for循环for range

2021-06-07 23:48:28 98

原创 基本数据类型

Go语言的数据类型Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。基本数据类型整型不同进制的整数注意:仍然是整型,底层仍然是用二进制保存的,只是用不同进制数输入而已func main(){ // 二进制 以0b开头(binary) v := 0b101101 fmt.Printf("%b \n", v) // 101101 占位符%b表示二进制 fmt.Printf("%d \n", v) /

2021-06-06 16:00:43 168

原创 变量和常量

杂记注意:局部变量必须要使用才能编译,全局变量不会要求。变量声明建议驼峰命名批量声明短变量声明必须是在函数中!(没有了var)匿名变量不会分配内存Printf输出控制符控制符说明%d十进制整型数据%ld长整型数据%c输出一个字符%s字符串常量关键字const变量初始化必须赋值iota常量生成器枚举时很有用!注意点:iota在const出现时被重置为0const中每新增一行常量声明,iota递增一1.枚举声

2021-06-04 22:30:40 54

原创 Go语言开篇

概述一种静态强类型、编译型语言! (而Java是解释型语言)前景介绍几百万做 Java 的是不是傻子不太确定。Rob Pike 那帮人绝不是傻子而且聪明绝顶,这很确定!安装官网下载,傻瓜式安装,环境变量会自动配置好,cmd输入cmd输入go version检查是否成功!工作空间默认C:\用户名\go下,可以去环境变量中修改!该目录下:执行第一个Gopackage main //程序入口包(可以打包的 类似SpringBoot)// 导入外包import "fmt"//程序入

2021-06-04 21:29:15 152

原创 Git使用

本地Git仓库基本使用Git基本设置添加、修改文件就是先add到暂存区,然后commit到Git仓库删除文件本地仓库同步到远程仓库(重点)一、将远程仓库克隆到本地二、对代码进行各种操作三、操作结束后先保存到本地克隆的仓库中也即是git add <file>,然后git commit -m ‘描述’四、确认无误则同步到远程仓库git push但需要在./git/config文件中填入用户名密码才能成功...

2021-06-03 00:47:37 141

原创 Git入门

Git用途项目代码托管工具基本概念GitHub仓库主页

2021-06-02 23:05:48 76

原创 Linux网络协议栈

Linux tcp缓冲区Buffer设置方法直接在连接代码中setSocket(),或者在/etc/sysctl.conf中统一配置

2021-05-27 23:09:54 2803 7

原创 数据结构回顾

数据量小==>内排序数据量大==>外排序O(n)得到第(前)K大元素==>快排思想(适合小数据量)O(nlogn)得到前K大元素==>维护一个K个元素的小顶堆(适合大数据量)【一次堆化需要logn,堆化n个元素需要n个logn】有序链表的范围查找==>跳表【O(logn)】...

2021-05-24 22:24:09 107

计算机网络无线层ppt

计算机网络无线层ppt

2021-01-04

计算机网络应用层ppt

计算机网络应用层ppt

2021-01-04

计算机网络运输层ppt

计算机网络运输层ppt

2021-01-04

计算机网络网络层ppt

计算机网络网络层ppt

2021-01-04

计算机网络数据链路层ppt

计算机网络数据链路层ppt

2021-01-04

计算机网络基础物理层ppt

大学生计算机网络课程

2021-01-04

空空如也

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

TA关注的人

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