碎碎念 在大一学习C语言的时候,举过一个用栈实现的括号匹配算法,当时觉得很难,不过现在回顾起来,这个算法也算是比较简单的一个关于栈的应用了。而现在所常见的算法问题也都是什么中缀表达式转后缀表达式,双栈找最小值之类的。难度…
分类:算法
为什么Java String哈希乘数为31?
前面简单介绍了[ 经典的Times 33 哈希算法 ],这篇我们通过分析Java 1.8 String类的哈希算法,继续聊聊对乘数的选择。 String类的hashCode()源码 /** Cache the hash …
Google 开发者大会 2018 实录 — TensorFlow篇
作者:楚丰,仝辉 摘要 前面两篇文章中,闲鱼作为阿里巴巴代表,分别揭晓了“UI2CODE”及“Flutter”在2018谷歌开发者大会上的奥秘,本篇文章我们将分享闲鱼在TensorFlow领域的分享和心得。 在9月21日…
SSH 协议基本原理及 wireshark 抓包分析
一、SSH协议简介 我们经常会使用ssh username@hostIp命令登陆我们的linux服务器,如下图所示: 我们也明白这是使用了SSH协议进行登陆,但我们想知道的是,为什么可以使用SSH协议进行登陆,而且为什么…
聊聊JWT
随着前后端分离越来越普及,传统的基于cookie-session的鉴权方式已经不适用于前后端分离项目了。在鉴权方面,有许多的实现方式,这篇文章不是来对比和介绍各个鉴权方式的优缺点,而是来普及其中之一-JWT。 更多文章,…
看图轻松理解数据结构与算法系列(希尔排序)
前言 推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。 希尔排序 希尔排序是希尔…
基于 Generator 和 Iterator 的惰性列表
初识 Lazy List 如果有了解过 Haskell 的朋友,对下面的这些表达一定不陌生 repeat 1 -- => [1, 1, 1, 1, 1,...] cycle "abc" -- => "abca…
WebRTC 架构优化及实践
内容来源:2018 年 1 月 13 日,声网Agora.io音乐工匠高泽华在“架构师修炼之道——极光开发者沙龙JIGUANG MEETUP”中,进行的《WebRTC架构优化及实践》演讲分享。IT 大咖说(微信id:it…
质量监控-卡顿检测
原文链接 不管是应用秒变幻灯片,还是启动过久被杀,基本都是开发者必经的体验。就像没人希望堵车一样,卡顿永远是不受用户欢迎的,所以如何发现卡顿是开发者需要直面的难题。虽然导致卡顿的原因有很多,但卡顿的表现总是大同小异。如果…
前端AI实战——告诉世界前端也能做AI
我想大多数人和我一样,第一次听见“人工智能”这个词的时候都会觉得是一个很高大上、遥不可及的概念,特别像我这样一个平凡的前端,和大部分人一样,都觉得人工智能其实离我们很遥远,我们对它的印象总是停留在各种各样神奇而又复杂的算…
分布式相关理论和分布式事务
原文链接: blog.wangriyu.wang/2018/06-Dis… 分布式系统理论 CAP 定理 CAP 定理指出对于一个分布式系统来说,不可能同时满足以下三点: 一致性 (Consistence): 等同于所有…
看图轻松理解数据结构与算法系列(NoSQL存储-LSM树)
前言 推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。 关于LSM树 LSM树,…