Bob丶抱抱
码龄9年
关注
提问 私信
  • 博客:111,486
    问答:829
    112,315
    总访问量
  • 35
    原创
  • 2,207,737
    排名
  • 24
    粉丝
  • 0
    铁粉

个人简介:爱工作,爱生活

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2015-08-24
博客简介:

bob_baobao的博客

查看详细资料
个人成就
  • 获得74次点赞
  • 内容获得24次评论
  • 获得139次收藏
  • 代码片获得146次分享
创作历程
  • 7篇
    2020年
  • 2篇
    2019年
  • 15篇
    2018年
  • 9篇
    2017年
  • 3篇
    2016年
成就勋章
TA的专栏
  • 算法
    5篇
  • javascript
    27篇
  • mysql
    4篇
  • 移动端
    1篇
  • node
    7篇
  • css
    1篇
  • 测试
    2篇
  • 微服务
    1篇
  • 安全
    1篇
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

算法系列--哈希表

哈希表哈希表(Hash Table,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做哈希函数,存放记录的数组称做哈希表。经典例题遍历数组中每个元素,统计比它小的元素的个数leetcode 1365示例:nums[1,2,3,2,1,4], 每个元素小的数组[0,2,4,5], 所以返回[0,2,4,2,0,5]解题思路第一种思路,是排序后, 然后
原创
发布博客 2020.12.03 ·
319 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

算法系列--二分查找

二分查找是一种效率较高的查找方法,前提是数据结构必须先排好序,它的平均时间复杂度是O(logn)。碰到排好序的数组,第一时间应该想到用二分法求解。二分查找的递归与非递归实现在有序数组arr中,查找目标值value的元素下标// 递归function biSearch(arr, start, end, value) { if (start > end) return -1 let mid = Math.floor((start + end) / 2) if (arr[mid].
原创
发布博客 2020.11.12 ·
239 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

算法系列--排序

根据时间复杂度分类,常见的排序算法有:O(n^2): 冒泡、插入、选择;O(nlogn): 快排、归并;O(n): 桶、计数、基数;冒泡排序时间复杂度: 平均O(n^2)稳定性: 稳定// 普通版function bubbleSort(arr) { let n = arr.length for (let i = 0; i < n; i++) { for (let j = 0; j < n - i - 1; j++) { if (arr[j] &
原创
发布博客 2020.11.06 ·
264 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

算法系列--基础知识

基础定义数据结构与算法区别数据结构:一组数据的存储结构;算法:操作数据的一组方法;时间复杂度表示算法的执行时间与数据规模之间的增长关系;只关注循环执行次数最多的代码,这段代码执行次数 n 的量级;乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积;常见时间复杂度多项式量级:O(1), O(logn), O(n), O(nlogn), O(n^k)非多项式量级:O(2^n)、O(n!)空间复杂度表示算法的存储空间与数据规模之间的增长关系;常见空间复杂度O(1)
原创
发布博客 2020.10.26 ·
123 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

算法系列--递归

什么类型的问题适合递归求解一个问题可以分解为几个子问题;子问题与父问题求解方法一样;存在递归终止条件;如何编码递归问题写出递推公式;写出终止条件;翻译成代码;递归代码弊端及解决方法堆栈溢出:通过控制递归深度;重复计算:通过散列表存储计算值;函数调用耗时多:通过控制递归深度;空间复杂度高:转成非递归;经典习题LeetCode 70 爬楼梯:一次可以爬1层或者2层,问爬到n层有多少种方法;分析递推公式:爬到最后一层楼梯只有两种可能,从倒数第二层走一步,或者从倒数第
原创
发布博客 2020.10.23 ·
195 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hybrid通信原理--Jockey源码解析

1. Hybrid通信原理1.1 什么是Hybrid通信本文讲的Hybrid通信指的是:在Hybrid框架中,H5与Native之间的交互。交互包括两部分:H5访问Native,应用场景有设置导航栏,调用Native组件等;Native访问H5,应用场景有H5分享,执行H5回调等;1.2 H5与Native交互实现原理交互分成两中场景:H5访问NativeH5发送Schem...
原创
发布博客 2020.03.29 ·
2071 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Vue源码解析--Virutal Dom

1.Virtual Dom是什么Virtual Dom, 又叫虚拟dom,本质是一个js对象,是用来描述一个dom节点信息。例如,一个普通的dom节点:<div class="wrap">i am text</div>它的virtual dom 是:const divVdom = { tag: 'div', attrs: { cl...
原创
发布博客 2020.03.29 ·
294 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

koa2源码解析一

占个坑,接下来要完成这篇文章~一、koa2是什么1.1 定义1.2 为什么要用koa21.3 怎么用koa2二、koa2实现了哪些重要功能2.1 启动http服务2.2 装载中间件2.3 错误异常处理2.4 重写request,response,上下文对象三、koa2源码实现细节3.1 起服务3.2 洋葱流程3.3 实例上挂载上下文对象四、koa2源码相关疑问4.1 ...
原创
发布博客 2019.02.28 ·
384 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Seneca:NodeJS 微服务框架入门(一)

Seneca是什么?(1)官网是这样介绍的:Seneca is a microservices toolkit for Node.js.It helps you write clean, organized code that you can scale and deploy at any time.大概意思是:Seneca是一个库,在Node平台上开发微服务时用的,它能够帮助开发人员...
原创
发布博客 2019.01.29 ·
13670 阅读 ·
9 点赞 ·
0 评论 ·
20 收藏

如何在Node中充分利用cpu

1. 背景Node.js在官网上是这样定义的: “ 一个搭建在Chrome JavaScript运行时上的平台,用于构建高速、可伸缩的网络程序。Node.js采用的事件驱动、非阻塞I/O模型使它既轻量又高效,是构建运行在分布式设备上的数据密集型实时程序的完美选择。”用Node.js处理I/O密集型任务相当简单,只需要调用它准备好的异步非阻塞函数就行了。然而数据密集型实时(data-intens...
原创
发布博客 2018.12.28 ·
1182 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

web 安全入门(一)

一、XSS1.1 定义XSS(Cross Site Scripting),即为跨站脚本攻击,恶意攻击者向web页面中植入恶意js代码,当用户浏览到该页时,植入的代码被执行,达到恶意攻击用户的目的。1.2 危害场景通过document.cookie盗取cookie使用js或css破坏页面正常的结构与样式流量劫持配合csrf攻击完成恶意请求…1.3 分类(1)反射型 XSS反...
原创
发布博客 2018.11.30 ·
481 阅读 ·
1 点赞 ·
3 评论 ·
12 收藏

微服务介绍与consul应用入门

1. 什么是微服务1.1 微服务的由来微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管...
原创
发布博客 2018.11.07 ·
1479 阅读 ·
4 点赞 ·
0 评论 ·
6 收藏

如何使用ab做接口压力测试

一、什么是压力测试压力测试是通过不断向被测系统施加“压力”,测试系统在压力情况下的性能表现,考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在,也就是我们可以模拟巨大的工作负荷以查看应用程序在峰值使用情况下如何执行操作。压力/负载/性能测试之间的区别压力测试(StressTesting),也称为强度测试,通过模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷...
原创
发布博客 2018.10.30 ·
10403 阅读 ·
2 点赞 ·
0 评论 ·
34 收藏

JavaScript 工作原理(一)——内存管理与四种常见内存泄漏的处理方法

转载:JavaScript 工作原理(一)——内存管理与四种常见内存泄漏的处理方法 几周前,我们新开了一系列文章,旨在深入 JavaScript,探寻其工作原理。我们认为通过了解 JavaScript 的构建方式和其运行规则,我们能写出更好的代码和应用。第一篇文章重点介绍了引擎、运行时和调用栈的概述。第二篇文章仔细地分析了 Googl...
转载
发布博客 2018.10.22 ·
174 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Javascript单元测试及接口测试

文章概要什么是单元测试为什么要做单元测试javascript测试框架对比koa2中如何使用ava做单元测试vue中如何使用ava做单元测试koa2中如何使用ava做接口测试单元测试是什么单元测试(unit testing)指的是以软件的单元(unit)为单位,对软件进行测试。单元可以是一个函数,也可以是一个模块或组件。它的基本特征就是,只要输入不变,必定返回同样的输出。单元测...
原创
发布博客 2018.09.30 ·
4432 阅读 ·
4 点赞 ·
1 评论 ·
13 收藏

Node.js 中 mysql 应用 -- 连接池的优势

引言从事 Node 开发 web 服务也有一段时间了, 访问数据库用的是 mysql, 每次执行数据库操作如下:创建一个连接, 执行 sql 语句, 然后关闭连接。 当用户量不大,并发请求数不多的时候, 一切都是正常的运转。 当写一个爬虫功能时候,同时执行2000+入库操作时, 系统报错,提示超时了。 意识到问题的重要性后,努力学习了一番, 在此, 分享并记录数据库连接池相关知识。安装 ...
原创
发布博客 2018.08.31 ·
2936 阅读 ·
8 点赞 ·
0 评论 ·
15 收藏

Javascript正则表达式--应用篇

在学习了上一篇正则语法篇,是不是迫不及待想知道正则如何在工作中应用呢? 应用1难度:**题目描述判断输入是否是正确的邮箱格式function isAvailableEmail(sEmail) {}给自己5分钟,尝试一下…解题思路: 1. 把一个正常的邮箱格式拆成4部分,分别定义正则难点: 1. 如何拆分邮箱格式答案:functio...
原创
发布博客 2018.07.31 ·
365 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Javascript正则表达式--语法篇

使用正则的过程中可能对Js正则的语法记得不太牢,顺便也整理了一下,列在这里。 正则对象(1)构造函数方式var reg = new RegExp('abc', 'gi');第一个参数是正则的内容,第二个参数是修饰符,修饰符通常有三种,i,g,m,i表示的含义是忽略大小写进行匹配,g表示全局匹配即匹配到第一个之后不停止继续匹配,m表示多行匹配,更改^和$的含义,匹配任意一行...
原创
发布博客 2018.07.25 ·
234 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

node开发脚手架工具

引言曾经接触过vue-cli脚手架,发现真的很神奇,能够短短几分钟,构建出一个vue框架的初始项目。今天, 就来揭开脚手架神秘的面纱, 自己也可以编写脚手架,提高工作效率。脚手架使用流程回忆一下vue-cli脚手架, 我们使用的流程:全局安装vue-cli: npm install -g vue-cli初始化项目: vue create my-project根据提示选择:...
原创
发布博客 2018.06.26 ·
1690 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

es6 类class入门

什么是类? 类是面向对象程序设计中的概念,是面向对象编程的基础。 - - 百度百科简单介绍下,面向对象编程中几个基本概念:(1)对象一切事物皆为对象,生活中看到的,听到的,闻到的等东西都是对象。准确的说, 对象是一个自包含的实体,用一组可识别的特性和行为来标识。(2)类定义: 类是对现实生活中一类具有共同特征的事物的抽象, 换句话说,类就是具有相同属性和功能的对...
原创
发布博客 2018.05.31 ·
304 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏
加载更多