自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

原创 Mysql学习(2) -创建、删除用户、权限管理以及flush privileges的使用(很多人只是会使用sql语句,但是对用户以及用户权限的概念比较模糊)

Time:2019-8-15 21.42Site:深圳科兴科学院Author: strivewang摘要第一部分是介绍Mysql创建用户以及相应的权限介绍。第二部分细节介绍了Mysql不同维度的权限控制第三部分讲解了权限控制Mysql创建用户第一条语句的逻辑是创建一个用户’user'@'%’,密码是 password。用户名是user, host是%,表示所有的ipcre...

2019-11-24 19:59:48 724

原创 Mysql学习笔记(1) -- Mysql 日常开发中最实用的语句

1. 创建1.1 创建数据库语法:create database db_namecreate database `awesome_app`1.2 创建表格语法:create table table_name ( … columns )示例:创建用户表 userscreate table `users`( `id` int, `name` char(10), ...

2019-11-20 21:53:45 432

原创 Kafka为什么不提供像 MySQL 那样允许副本对外提供读服务?

Time:2019-11-4Author:striVEWANGSite:科兴科学院Kafka为什么不提供像 MySQL 那样允许副本对外提供读服务?原因一:读数据压力方面:Kafka 的 Partition 分布在多个broker,当 Comsuer 消费数据的Partiton是被分配到不同的Broker上,已经是负载均衡之后的请求。Mysql读写数据都在主DB上,主DB...

2019-11-05 12:19:22 690

原创 linux下开发 最实用指令之调试篇-----ps、top、grep

Time:2019-8-25 16:19Site:深圳科兴科学院Author: strivewangtop工具的介绍ps指令及参数的详细介绍grep配合其它指令的妙用最常见的性能分析工具 top(类似于Windows 任务管理器)top 命令是 Linux 下常用的性能分析工具,能够实时的显示当前系统下各个进程的资源占用情况。下面就是 top 命令的局部截图:下面将介绍 top...

2019-08-25 21:46:00 1773

转载 Go语言的坑三

转自:https://i6448038.github.io/2018/07/18/golang-mistakes/不要对Go并发函数的执行时机做任何假设请看下列的列子:   import ( "fmt" "runtime" "time" ) func main(){ names := []string{"lily", "...

2018-08-01 15:28:47 5782

转载 Go语言的坑二

转自:https://i6448038.github.io/2017/10/06/GolangDetailsTwo/Golang中函数被看做是值,函数值不可以比较,也不可以作为map的key请问以下代码能编译通过吗?   import ( "fmt" ) func main(){ array := make(map[int]func (...

2018-08-01 15:27:35 543

转载 Go语言的坑一

转自:https://i6448038.github.io/2017/07/28/GolangDetails/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io Golang是我最喜欢的一门语言,它简洁、高效、易学习、开发效率高、还可以编译成机器码…虽然它一出世,就饱受关注,而且现在在市面上逐渐流行开来...

2018-08-01 15:25:57 998

转载 Go 单元测试和压力测试

开发程序其中很重要的一点是测试,我们如何保证代码的质量,如何保证每个函数是可运行,运行结果是正确的,又如何保证写出来的代码性能是好的,我们知道单元测试的重点在于发现程序设计或实现的逻辑错误,使问题及早暴露,便于问题的定位解决,而性能测试的重点在于发现程序设计上的一些问题,让线上的程序能够在高并发的情况下还能保持稳定。本小节将带着这一连串的问题来讲解Go语言中如何来实现单元测试和性能测试。Go语言中...

2018-06-27 16:03:51 1268

原创 GO context包源代码剖析

// Copyright 2014 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.// Package context defines the Context t...

2018-06-03 15:51:31 524

原创 C++ 容易忽视的知识点

1    const成员函数        两个成员函数如果只是常量性不同,可以被重载class a{            void fun()const            void fun()}2018-5-31  22:52

2018-05-31 22:54:44 179

转载 几种负载均衡技术的实现

转载至:https://blog.csdn.net/mengdonghui123456/article/details/53981976【前言】        负载均衡技术对于中大型网站的性能提高有着很大的优势,最近在学习《大型网站技术的架构》,其中对于负载均衡技术有一些介绍,将学习的经验总结一下,分享下。多交流。【协议层】http重定向协议实现负载均衡      原理:根据用户的http请求计算...

2018-05-31 21:16:17 4692

转载 负载均衡之DNS域名解析

转载至:http://blog.csdn.net/cywosp/article/details/38017027DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。人们在通过浏览器访问网站时只需要记住网站的域名即可,而不需要记住那些不太容易理解的IP地址。在DNS系统中有一个比较重要的的资源类型叫做主机记录也...

2018-05-31 20:56:54 3914

原创 Go使用mgo中的各种实用函数讲解以及实例演示

先说一句题外话,自己的亲身感受,看别人再多的博客,也不如自己去查看官方文档,自己就是看了网上的博客,感觉似懂非懂,就硬着头皮去看官方文档,看了一会,感觉也就那回事,不难。哈哈,可以先看了我的博客再去看文档,我也讲得不错哈这里奉上 mgo 官方文档:点这里点这里1.1 连接数据库mgo 连接Mongodb 有三个函数。函数功能相同,参数不而已。下边做详细讲解func Dial...

2018-05-04 18:31:46 1928 1

转载 vim快速移动光标

转载至https://blog.csdn.net/richerg85/article/details/17636827自己转载收藏一下,方便自己平时查看和别人查看一起学习。     1、简单方向移动     (最基本的移动命令,类似你键盘的左右上下http://write.blog.csdn.net/postedit方向键,但是功能却是异常的强大!)    ps:如果你是vim新手,希望你能边看边...

2018-05-04 18:05:04 1046

原创 Go使用 channel(阻塞通道) 实现生产者消费者模型

package mainimport ( "fmt" "time")func producter(name string, ch chan int) { for i := 0; i < 4; i++ { fmt.Println(name, "product :", i) ch <- i }}func consumer(name string, ch ch...

2018-05-02 09:56:12 820

原创 HTTP/2 的新特性

HTTP2.0 特性HTTP/2,也就是超文本传输协议第2版,不论是1还是2,HTTP的基本语义是不变的,比如方法语义(GET/PUST/PUT/DELETE),状态码(200/404/500等),Range Request,Cacheing,Authentication、URL路径, 不同的主要是下面几点:1 多路复用 (Multiplexing)在 HTTP/1.1 协议中 「浏览器客户端在同...

2018-05-01 19:35:34 419

原创 GO语言使用共享变量实现并发

1.1 竞态 在串行程序中(即程序中只有一个goroutine),程序中各个步骤的执行顺序由程序逻辑来决定。 竞态是指在多个 goroutine 按照某些交错顺序执行时程序无法给出正确的结果。竞态对于程序是致命的,因为它们可能潜伏在程序中,出现频率很低,不易重现。1.2 互斥锁:sync.Mutex 其中Mutex为互斥锁,Lock()加锁,Unlock()解锁,使用Lock(

2018-05-01 11:01:52 1142

原创 Go 通道(channel)

注:自己踩的一个:如果主函数创建一个通道(chan),调用的函数把这个通道关闭,那么往这个通道写数据就会崩溃,但是读值得话,就是这个类型的默认值如果说goroutine 是 Go 程序并发的执行体,通道就是它们之间的连接。通道是可以让一个 goroutine 发送特定值到另一个 goroutine 中的通信机制。每一个通道是一个具体类型的导管,叫做通道的元素类型。package main...

2018-04-30 21:08:58 193

原创 Go 的goroutine(协程)

goroutine在Go里,每一个并发执行的活动称为 goroutine 。当一个程序启动时,只有一个 goroutine 来调用 main() 函数,称它为主 goroutine fun() //调用 fun(),等待它返回go fun() //新建一个调用 fun() 的goruntine ,不用等待

2018-04-30 20:28:42 161

原创 Go 基本数据类型

GO 的数据类型分为四大类:基础类型(basic type),聚合类型(aggregate type),引用类型(reference type),接口类型(interface type)。下面讲的是基础类型:number,string, bool。其它的会在后面的博客涉及到1.1 整数有符号整数: int8 int16 int32 int64无符号整数 uint8

2018-04-30 15:02:45 142

原创 Go 接口

如果说goroutine和channel是Go并发的两大基石,那么接口是Go语言编程中数据类型的关键。在Go语言的实际编程中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。 Go语言中的接口是一些方法的集合(method set),它指定了对象的行为:如果它(任何数据类型)可以做这些事情,那么它就可以在这里使用。特点:Go语言的接口的独特之处在于它是【隐式实现】。...

2018-04-30 12:10:11 116

原创 Go语言中的方法

1.1 方法声明 方法的声明和普通函数类似,只是在函数名字前面多了一个参数。这个参数把这个方法绑定到这个参数对应的类型上 import ( "fmt" ) type Point struct { x, y int } func fun() { fmt.Println("我是一个普通的 fun") } func (p Point) f

2018-04-29 21:44:35 194

原创 解析GO语言中的 deter

延迟函数调用(defer) Go语言中延迟函数defer充当着 cry...catch 的重任,使用起来也非常简便,然而在实际应用中,很多人并没有真正搞明白defer、return和返回值之间的执行顺序,从而掉进坑中,今天我们就来揭开它的神秘面纱!12先来运行下面两段代码: A. 无名返回值的情况package mainimport ( "fmt")func main()...

2018-04-29 17:17:21 1013

原创 GO函数

1.1 函数声明 每个函数声明都包含一个名字,一个形参列表,一个可选的返回列表以及函数体func fun(x,y float64) float{ return 100.00}也可以func fun(x float64,y float64) float{ return 100.00}1.2函数递归 函数可以递归调用,这就意味着函数...

2018-04-29 16:01:54 695

原创 Go程序结构

1.1 名称Go中函数,变量,常量,类型,语句标签和包的名称遵循一个简单的命名规则:名称的开头是一个字母或下划线,并且区分大小写注:实体的第一个字母的大小写决定了其可见性是否可以跨包。如果名字是大写字母的开头,它是导出的,意味着它对包外可见和可访问的,可以被包外的其他程序所引用(拷贝),像 fmt 包中的 Printf.包名总是由小写字母组成。1.2 声明声明给一个实体命名,并...

2018-04-28 21:10:14 208

原创 TCP(HTTP)长连接和短连接的区别以及怎样维护长连接

一、HTTP协议和TCP协议HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。二、HTTP协议的长连接和短连接在HTTP/1.0中,默认使用的是...

2018-04-25 22:19:18 836

原创 HTTP/ 1.0 和HTTP /1.1 的区别

区别一(最重要) HTTP/ 1.1 加入了 1 持久连接(HTTP Persistent Connections),也称为 HTTP keep-alive,持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态 2 管线化(也叫流水线)(pipelining),以前发送请求后需要等待并且收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可...

2018-04-16 13:53:25 1071

原创 360第一次面试(电面)未完待续

1 内部名称 C和C++语言实现都会按照特定的规则把用户(程序员)定义的标识符(各种函数,变量,类型,以及命名空间)转换为相应的内部名称。当然,这些内部名称的命名方法还与用户为它们指定的连接规范有关,比如使用C的连接规范,则main的内部名称就是_main。2 C为什么不支持重载,C++支持重载 部分采摘至《高质量c++/c语言》 其实这个原因,还是要从C和C++的命名...

2018-04-09 00:28:05 292

原创 TCP半关闭,半连接,半打开

半关闭: 当TCP链接中A向B发送 FIN 请求关闭,另一端B回应ACK之后,并没有立即发送 FIN 给A,A方处于半连接状态(半开关),此时A可以接收B发送的数据,但是A已经不能再向B发送数据。半连接: 发生在TCP三次握手中 如果A向B发起链接,B也按照正常情况响应了,但是A不进行三次握手,这就是半连接。 半连接攻击:半连接,会造成B分配的内存资源就一直这...

2018-04-08 17:04:15 8563

原创 A + B 问题

给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 注意事项你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。您在真实的面试中是否遇到过这个题?说明a和b都是 32位 整数么?是的我可以使用位运算符么?当然可以样例如果 a=1 并且 b=2,返回3方法一 int aplusb(int a, int b) { // w...

2018-04-06 23:25:23 257

原创 实现一棵树的层序遍历

思想:因为是层序遍历,从上到下,从左到右,所以就是采用FIFO,先进先出的原则,使用队列来存储二叉树的结点,就可以实现层序遍历。templatestruct Tree_Node{ T data; Tree_Node* left; Tree_Node* right; Tree_Node(const T& val) :data(val) , left(NULL) , rig

2018-01-26 19:41:27 433

原创 浅析c++函数重载的原理

一. 函数重载的概念在C语言中,一个函数不能与另一个函数重名,而在C++中,一个函数的函数名相同的,只要参数列表与另一个函数的参数列表不完全相同,C++这一特点就是所谓函数的重载现象。 同一个名字因为参数列表不同,展现了不同的结果,也叫静多态二.函数重载的原则 ①函数名相同,函数参数列表不同(类型、个数、顺序) ②匹配原则1:严格匹配,找到再调用 ③匹配原则2:通过隐式类型转换寻求

2018-01-22 21:51:22 203

原创 指针和引用的区别

一. 性质的区别:    1 指针是一个变量,存储的是一个地址。这个地址指向内存的一个内存单元。 引用跟原来的变量实质上是一个东西,是原来变量的别名。 int a=1;int *p=&a; 上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。int a=1;int &b=a;上面定义了一个整形变量a和这个整形a的引

2018-01-22 19:58:51 100

原创 c语言str系列函数

strcat();函数原型: char* strcat(char* dest, const char* src) 功 能:    将src 的 字符串追加到 dest后边char* Strcat(char* dest, const char* src){ if (NULL == src) { return dest; } char* add = dest; while

2018-01-22 12:23:55 4366

转载 c语言内存对齐详解

一、什么是字节对齐,为什么要对齐?    现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。    对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某

2018-01-17 19:43:49 152

原创 详细分析c/c++语言中的static

一 static在c语言中的应用详细分析一下static关键字在c语言中编写程序时有的三大类用法:        一,static全局变量           我们知道,一个进程在内存中的布局如图1所示:      其中.text段保存进程所执行的程序二进制文件,.data段保存进程所有的已初始化的全局变量,.bss段保存进程未初始化的全局变量(其他段中还有很多乱七八糟的段,暂且不表)。在进程的整...

2018-01-16 20:17:29 186

原创 查找单链表的倒数第K个节点,要求只能遍历一遍链表

算法思想:使用快慢指针const list_node* Find_K( list_node*& list, int K){ list_node* fast_p = list; list_node* slow_p = list; for (int i = 0; i < K; i++) { fast_p = fast_p->next; } while (fast_p !

2018-01-16 18:14:22 227

原创 逆置/反转单链表,要求只能遍历一遍链表

第一种方法,非递归list_node* reverse(list_node* list){ assert(list); if (NULL == list->next) { return list; } list_node* new_head = NULL; //用作返回值的头结点 list_node* cur = list; //当前结点 list_node* ne

2018-01-16 17:53:47 1153

原创 【剑指offer】实现 1+2+3+...+n,要求不能使用乘除法,循环,条件判断,选择相关的关键字

这个题因为涉及到判断n 是否 大于0,但是题目中说明不能使用条件判断,所以可以使用 && ,因为它有短路条件//实现 1+2+3+...+n,要求不能使用乘除法,循环,条件判断,选择相关的关键字size_t Sum(size_t n){ size_t ret = n; bool Bool = (n > 0) && (ret = Sum(n - 1) + ret); return re

2018-01-15 17:32:00 305

原创 合并两个有序链表,合并之后依旧有序

解法一   使用递归struct list_node{ int data; list_node* next; list_node(int data) :data(data) , next(NULL) {}};// 1 递归法 list_node* R_mergc(list_node* l1, list_node* l2){ if (l1 == NULL

2018-01-15 16:31:07 332

空空如也

空空如也

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

TA关注的人

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