w

我来鹅城只办三件事

Golang笔记

Golang开山篇 Golang的学习方向 区块链研发工程师, Go服务器端/游戏软件工程师, Golang分布式/云计算软件工程师 Golang的应用领域 区块链的应用开发 分布式账本技术: 去中心化, 公开透明 后台服务器应用 云计算/云服务后台应用 学习方法介绍 先整体框架, 再细节 工科 做中学 适当囫囵吞枣 讲课方式说明 通俗易懂 兼顾技术细节 Golang的概述 什么是程序 Go语言诞生的小故事 Go语言的核心开发团队-三个大牛 肯.汤姆森 罗布.派克 Google创造go语言的原因 计算机硬件更新频繁, 目前主流语言不能利用多核CPU 缺乏一个足够简单高效的编程语言 c/c++编译速度慢, 内存泄漏等困扰 Golang的发展历程 2007年三大创始人开始设计 2009年11月10日, 开源 2015年8月19日, 1.5发布, 移除最后残余的C代码 … Golang的语言特点 静态编译语言的安全和性能, 动态语言开发维护的高效率, 结合 Go = C + Python 保留了指针, 弱化的指针 引入包的概念, 一个文件都要归属于一个包 垃圾回收机制, 内存自动回收 天然并发(重要) 从语言层面支持并发, 实现简单 goroutine, 轻量级线程, 可实现大并发处理, 高效利用多核心 基于CPS并发模型实现 吸收了管道通信机制, 形成Go语言特有的管道channel, 实现不同goroutine之间相互通信 函数可以多返回值 新的创新, 比如切片slice, 延时执行defer Golang开发工具介绍 Vscode, Goland...

2018-12-31 · 5 分钟 · 917 字 · 王站站

面试汇总

面试汇总 MySQL mysql隔离级别、如何避免脏读和幻读 https://blog.csdn.net/johnstrive/article/details/46724315 Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。 Read Committed(读取提交内容) 这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别 也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。 Repeatable Read(可重读) 这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读 (Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)机制解决了该问题。 Serializable(可串行化) 这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。 这四种隔离级别采取不同的锁类型来实现,若读取的是同一个数据的话,就容易发生问题。例如: **脏读(Drity Read):**某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。 **不可重复读(Non-repeatable read):**在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。 **幻读(Phantom Read):**在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的。 隔离级别 脏读 不可重复读 幻读 Read Uncommitted √ √ √ Read Committed × √ √ Repeatable Read × × √ Serializable × × × mysql主从同步原理和过程 slave(从服务器) master(主服务器) mysql主从是异步复制过程 master开启bin-log功能,日志文件用于记录数据库的读写增删 需要开启3个线程,master IO线程,slave开启 IO线程 SQL线程, Slave 通过IO线程连接master,并且请求某个bin-log,position之后的内容。 MASTER服务器收到slave IO线程发来的日志请求信息,io线程去将bin-log内容,position返回给slave IO线程。 slave服务器收到bin-log日志内容,将bin-log日志内容写入relay-log中继日志,创建一个master.info的文件,该文件记录了master ip 用户名 密码 master bin-log名称,bin-log position。 slave端开启SQL线程,实时监控relay-log日志内容是否有更新,解析文件中的SQL语句,在slave数据库中去执行。...

2018-12-24 · 3 分钟 · 493 字 · 王站站

面试题目

1.什么是引用变量?在PHP中,用什么符号定义引用变量? 在PHP中引用意味着用不同的名字访问同一个变量内容。使用&符号。 <?php // 定义一个变量 $a = range(0, 1000); var_dump(memory_get_usage()); // 定义变量b,将a变量的值赋值给b // COW Copy On Write $b = $a; var_dump(memory_get_usage()); // 对a进行修改 $a = range(0, 1000); var_dump(memory_get_usage()); <?php // zval变量容器(需要安装xdebug扩展) $a = range(0, 3); xdebug_debug_zval('a'); // 定义变量b,把a的值赋值给b $b = $a; xdebug_debug_zval('a'); // 修改a $a = range(0, 3); xdebug_debug_zval('a'); 2.PHP中字符串可以使用那三种定义方法以及各自的区别是什么? 定义方式:单引号,双引号,heredoc和newdoc. 单引号:不能解析变量,不能解析转义字符,只能解义单引号和反斜线本身,变量和变量,变量和字符串,字符串和字符串之间可以用.连接 双引号:可以解析变量,变量可以使用特殊字符和{}包含,可以解义所有的转义字符,可以使用.连接 单引号效率高 heredoc类似于双引号,newdoc类似于单引号,两者都是用来处理大文本 八大数据类型:标量(浮点,整型,字符串,布尔),复合(数组,对象),特殊(null,资源) 布尔中与false七种:0,0.0,’’,‘0’,false,array(),NULL 超全局数组:$GLOBALS,$_GET,$_POST,$_REQUEST,$_SESSION,$_COOKIE,$_SERVER,$_FILES,$_ENV $_SERVER[’…’]在下面⬇ // HTTP_HOST 主机名 // HTTP_USER_AGENT 获取终端设备, 浏览器版本 // // SERVER_SOFTWARE 获取服务器环境 // SERVER_NAME 服务器名 // SERVER_ADDR 服务器地址 (IP) // REMOTE_ADDR 客户端IP地址 // // SCRIPT_FILENAME 脚本地址(盘符) // SCRIPT_NAME 脚本地址(网址) // // REQUEST_URI 传输地址(带参数) // REQUEST_METHOD 传输方式 // QUERY_STRING 传输参数 // // HTTP_REFERER 获取上一级的来源地址 null:直接赋值为NULL,未定义变量,unset销毁的变量...

2018-12-17 · 3 分钟 · 579 字 · 王站站

云之梦面试题

第一课总结(最新PHP面试教程http://www.php.cn/course/876.html) 1.自己充满正能量,心态好,多吃苦,提升技能. 2.团队要正能量,融入团队,积极乐观. 3.人品第一,技能其次. 第二课 Use du. 当前目录的空间(Linux) crontab -e 分时日月周(Linux) cp f1.txt f2.txt 复制 看Linux启动信息:dmesg 第三课 加号(+)可以进行数组合并 月:m和n 日:d和j(带不带前导零) preg_split(/-|_/,$arr) 正则分割 str_split($arr,3) 按长度分割 str_replace('1','2',$str) 字符串替换(把1换成2) preg_replace(/linux|php/,'js',$arr) 字符串正则替换 类:protect,public,private interface 接口 abstract 抽象类或抽象方法 final 最终版本的类或方法 static 静态属性或方法 5.从表login中选出name字段包含admin的前10条结果所有信息的sql语句 select * from login where name like "%admin%" limit 10; 6.解释:左连接,右链接,内连接,索引 左连接:left ... join ... on 以左表为主导,先输出左边表的所有数据,右边匹配的输出,不匹配的值为null. 内连接:inner ... join ... on 相当于普通多表查询 索引:主键,唯一,普通 7.简述论坛中无限分类等等实现原理 表字段至少4列: id,name,pid(父类id),path(分类地图) 10.描述一下大流量高并发量网站的解决方案 1.服务器负载均衡 2.web服务器用nginx(3万)替换apache(3千) (最大并发数) 6.调高apache的默认并发数调大 7....

2018-12-10 · 1 分钟 · 167 字 · 王站站

JS复习

JS复习 第一天 1. javascript 简介 1.1 什么是javascript 1.1.1 概念: javascript是 基于对象 和 事件驱动 并具有相对安全性的 客户端 脚本语言 1.1.2 发展简史: ① Nombas公司1992年开发 嵌入式脚本语言 C-- 后改名 ScriptEase ② Netscape公司 1995年发布LiveScript 后改名javascript1.0 ③ 三足鼎立 NetScape推出javascript1.1后,Microsoft推出Jscript, 加上 ScriptEase ④ 标准化 1997javascript1.1 作为草案 提交给 ECMA(欧洲计算机制造商协会) 。由来自 Netscape、Sun、 微软、Borland 和其他一些对脚本编程感兴趣的公司的程序员组成的 TC39 锤炼出了 ECMA-262,该标准 定义了名为 ECMAScript 的全新脚本语言. 1.1.3 组成: 核心(ECMAScript) 文档对象模型(DOM) 浏览器对象模型(BOM) 1.1.4 客户端浏览器上执行的脚本 JavaScript VBScript applet(需要安装JDK) 1.1.5 ECMAScript核心: JavaScript ActionScript ScriptEase 1.1.6 扩展:node.js 服务端开发(apache+php)手机app: phonegap框架 1.1.7 课程 内容: JS 基本语法 JS 函数/对象/数组 JS 内置对象 JS 事件 BOM DOM HTML XML Ajax Jquery类库 Bootstrap 1....

2018-12-03 · 8 分钟 · 1689 字 · 王站站